一連のディレクトリの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