【问题标题】:bash script to iterate directories and create tar files用于迭代目录并创建 tar 文件的 bash 脚本
【发布时间】:2018-11-15 10:34:29
【问题描述】:

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

【问题讨论】:

  • Stack Overflow 不是代码编写服务。请出示您的代码。由于 Stack Overflow 向您隐藏了关闭原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example

标签: linux bash ubuntu directory ubuntu-14.04


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    经过大量搜索、结合脚本和测试后,我发现以下从主目录中运行时效果很好。 这可能会略有不同,具体取决于 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 2017-01-24
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多