Bash脚本从ZIP文件列表中提取和重新压缩内容

时间:2016-07-23 19:58:33

标签: bash zip command-line-interface 7zip

我有大约500多个ZIP文件,我需要使用尽可能最好的压缩来重新压缩。

我正在创建一个脚本(如果可能的话,一个内容)从每个ZIP文件中提取内容(其中一些包含多个文件,但没有更多的文件夹),管道输出,以便7zip可以重新压缩它们实现最大压缩ZIP文件。 我在下面创建的脚本通过提取到临时文件夹然后重新压缩来使用中间阶段,但是如果可能的话我想跳过那个阶段。 有人可以帮忙吗?提前谢谢。

这是我目前的脚本,运行正常。但我相信必须有一种更有效的方式来实现这一目标。

predir=$(pwd)   
for i in *.zip; do  
   dirname='echo "$i" | cut -d'.' -f1'  
   mkdir "$dirname"  
   7z x "$i" -o"$dirname"/ && rm "$i"  
   7za a -mm=Deflate -mfb=258 -mpass=15 -r "$i" "$predir"/"$dirname"/"*" && rm -rf  "$dirname"/   
done

0 个答案:

没有答案