分别压缩每个顶级目录

分别压缩每个顶级目录

如何为一系列目录创建 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

相关内容