我的目录中有几个文件夹,我想单独压缩它们。
Root
-folder1
-folder2
进入:
Root
-folder1.zip
-folder2.zip
-folder1
-folder2
实现这一目标的命令是什么?
答案1
dir_name=$(find /root/* -maxdepth 0 -type d)
for i in $dir_name; do zip -r $i $i; done
答案2
你使用 bash 来做到这一点吗?如果你这样做了,你可以使用 :
zip -r /root/folder1.zip /root/folder1/; zip -r /root/folder2.zip /root/folder2/
。
答案3
从准确找到所有文件夹的命令开始。修改 with 语句以过滤掉不需要的目录(例如__pycache__
)
ROOT_DIR="./Root"
(olddir=$PWD; cd "$ROOT_DIR"; for foldername in $(ls -1); do [ -d "$foldername" ] && echo "$foldername"; done; cd $olddir)
然后用您最喜欢的归档命令(zip、tar 等)替换“echo”语句。记住用双引号变量来支持目录名称中的空格。
上述的优点是您可以获得带./
前缀的“干净”文件夹名称,因此您可以将它们用作存档名称。