如何使用 Unix 在目录中分别压缩/压缩多个文件夹?
例如在 X: 指令中我有 a、b、c 等文件夹,我必须将它们压缩为 a.zip、b.zip 和 c.zip。即使我不知道文件夹名称是 a、b、c,我们也必须动态地执行此操作。
答案1
假设你确实需要 zip 文件,
cd /mydir/foo
find . -type d -d 1 -exec zip -r {} {} \;
这将为 /mydir/foo 中的每个目录创建一个 zip 文件。
编辑:此命令行的作用(记住永远不要复制粘贴你不理解的终端命令,这很危险)
find . -type d -d 1 -exec xxx
将找到 . 中的所有项目(在我们的例子中是 /mydir/foo),类型为 d 表示目录,然后执行命令 xxx
zip -r {} {}
只是 zip 命令,(您可以随意添加所需的选项,-r 表示递归),使用 find 每次匹配时提供的特殊字符串 {} 作为其第一个(zip 文件)和第二个(源)参数。\; 只是一个终止符,用于告诉 find -exec 命令已结束,并经过正确转义以免被 shell 误解