일련의 디렉토리에 대한 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