Linux - 如何分别压缩每个子目录的文件

问题描述

我有这样的目录结构。

enter image description here

由此我想创建不同的 zip 文件,例如

数据-A-A_1-A_11.zip

数据-A-A_1-A_12.zip

数据-B-B_1-B_11.zip

数据-C-C_1-C_11.zip

解决方法

while read line;
do 
   echo "zip -r ${line//\//-}.zip $line";
   # zip -r "${line//\//-}.zip" "$line"
done <<< "$(find data -maxdepth 3 -mindepth 2 -type d)"

将 find 命令的结果重定向到 while 循环中。 find 命令仅搜索目录数据中的目录,仅搜索 3 个目录深度。在使用 bash 扩展的 while 循环中,将所有正斜杠转换为“-”并添加“.zip”,这样我们就可以在每个目录上构建一个 zip 命令。如果您对每个目录回显时 zip 命令看起来不错感到满意,请在实际的 zip 命令中添加注释