可以使用以下命令将当前目录下的每个子目录分别压缩为独立的zip文件:
find . -maxdepth 1 -mindepth 1 -type d -print0 | xargs -0 -I {} sh -c 'zip -r "{}.zip" "{}"'步骤解释:
- 查找子目录:
find . -maxdepth 1 -mindepth 1 -type d-maxdepth 1:仅搜索当前目录,不进入子目录。-mindepth 1:排除当前目录自身(.)。-type d:仅匹配目录。
- 处理特殊字符:
-print0 | xargs -0-print0:以null字符分隔结果,避免空格/特殊字符导致的问题。-0:让xargs接收null分隔的输入。
- 构建压缩命令:
-I {} sh -c 'zip -r "{}.zip" "{}"'-I {}:将每个目录路径替换到{}的位置。sh -c:执行包含空格处理的命令。zip -r "{}.zip" "{}":递归压缩目录,双引号确保路径中的空格被正确处理。
效果示例:
- 目录
project➔ 生成project.zip - 含空格的目录
my data➔ 生成my data.zip
注意: 所有生成的zip文件会保存在当前目录中。如果需要在压缩后删除原目录,可在zip命令后添加&& rm -rf "{}",但请谨慎操作。










