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 {} \;
我正在寻找创建一个 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 {} \;