bash 用于迭代目录并创建 tar 文件的脚本

bash script to iterate directories and create tar files

我正在寻找创建一个 bash 文件的方法,该文件将迭代目录中的所有文件夹,并为每个目录创建一个 tar.gz 文件。 (这专门用于 ubuntu/drupal 网站 - 但在其他情况下可能有用。)

经过大量搜索、结合脚本和测试,我发现当 运行 来自主目录时,以下内容运行良好。 这可能会略有不同,具体取决于 bash 的版本、ubuntu 的版本以及您安排的位置或 运行 bash 文件。 (运行 通过在父文件夹中的命令行中键入 sh createDirectoryTarFiles.sh。) 回声线不是必需的 - 仅供查看。

   for D in *; do
      if [ -d "${D}" ]; then
         tx="${D%????}"
         echo "Directory is ${D} - and name of file would be $tx"
         tar -zcvf "$tx.tar.gz" "${D}"
      fi
   done

您可以使用find搜索mindepth和maxdepth之间的目录,然后创建tars

find .  -maxdepth 1 -mindepth 1 -type d -exec tar czf $(basename {}).tar.gz {} \;