각 최상위 디렉토리를 별도로 압축

각 최상위 디렉토리를 별도로 압축

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

관련 정보