我有数百个 .zip 文件位于名为 /zip 的目录中。所有 .zip 文件都有唯一的命名约定。例如:123456_123456.zip
我试图通过命令行完成所有 .zip 文件的任务:
这是我到目前为止所拥有的。
for z in *.zip;
do
num=0;
sudo unzip -njB "$z";
sudo mv -b "$(unzip -Z1 $z)" "${z%%.*}_$((++num)).$(unzip -Z1 $z | awk -F'[.]' '{print $2}')";
done
除了处理包含多个文件的档案之外,这似乎有效。 当脚本遇到包含多个文件的存档时,它会抛出错误,例如 mv:cannot stat 'TEST123.pdf TEST321.csv':没有这样的文件或目录。
对于让脚本处理存档中的多个文件有什么建议吗?
您需要第二个 for 循环来提取提取的内容。 (这是假设没有子目录)
for z in *.zip
do
num=0;
sudo unzip -njB "$z";
pushd "${z}"
for a in *
do
sudo mv -b "$(unzip -Z1 $a)" "${a%%.*}_$((++num)).$(unzip -Z1 $a | awk - F'[.]' '{print $2}')";
done
popd
done