如何为一系列目录创建 tarball?
例如,如果我的主目录包含名为“one”、“two”、“ Three”和“four”的目录,我如何创建 one.tar.gz、two.tar.gz、 Three.tar.gz 和 four.tar.gz?
答案1
for dir in one two three four; do
tar_file_name="$dir".tar.gz
test -f "$tar_file_name" || tar -czf "$tar_file_name" "$dir"
done
对于所有目录名称(真实目录,而不是符号链接):
#! /bin/bash
shopt -s dotglob
for dir in *; do
test -d "$dir" && test ! -L "$dir" || continue
tar_file_name="$dir".tar.gz
test -f "$tar_file_name" || tar -czf "$tar_file_name" "$dir"
done