我有一个文件夹working
,它的结构是这样的-
working/
100/
1/
2/
3/
200/
1/
2/
3/
300/
1/
2/
3/
每个1
2
3
文件夹都有大约1000个文件。
我想分别将文件1
2
3
夹下的文件压缩。压缩文件不应包含其顶级目录。将拉链放在任何地方。例如,如果存在files foo1
,foo2
并且foo3
在文件夹下,1
则它应该形成一个zip文件,在该zip文件下面1
应该只有foo文件。
一个简单的循环就可以解决问题。
cd working
for dir in */*/; do
[ -e "$dir/files.zip" ] || # skip directories where the zip already exists
( cd -- "$dir" && zip -r files.zip .)
done
请注意,zip足够聪明,可以在递归该目录时跳过正在构建的zip文件。其他一些归档程序将尝试将正在构建的存档填充到正在构建的存档中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句