m1k*_*y02 4 zip bash recursive
如何找到一个文件夹的所有子文件夹并分别压缩它们?
文件夹结构
./folder
-subfolder_1
-subfolder_2
-subfolder_3
Run Code Online (Sandbox Code Playgroud)
预期结果:
./folder
-subfolder_1.zip
-subfolder_2.zip
-subfolder_3.zip
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下方法:
for i in .; do zip -r $i.zip $i; done;
Run Code Online (Sandbox Code Playgroud)
生成一个包含所有子文件夹的..zip文件
小智 5
实际上,m1k3y02( ) 提供的解决方案for i in *; do zip -r "$i.zip" $i; done仅在当前目录仅包含子目录时才有效。
仅查找和压缩子目录的更好方法:
for dir in ./* ;do
if [[ -d $dir ]];then
zip -r ${dir}.zip $dir
fi
done
Run Code Online (Sandbox Code Playgroud)
或者
find . -type d -maxdepth 1 -exec zip -r {}.zip {} \;
Run Code Online (Sandbox Code Playgroud)