모든 디렉토리를 tar하는 예제를 찾았지만 동일한 디렉토리에 유지합니다.
일반 파일 구조와 다른 디렉토리에 tar를 저장하고 싶습니다.
지금까지 비슷한 것이 있지만 basename
내가 소유한 디렉토리의 이름이 잘렸습니다. 예를 들어, 일부 디렉토리는 www.example.com이고 결국 www.tar.gz가 됩니다.
WEBROOT="var/www"
BAKPATH="/var/backups/"
for vhost in $WEBROOT; do
base=$(basename "$vhost")
tar -czf $BAKPATH/"`date +%Y-%m-%d`_${base}.tar.gz" "$vhost"
done
답변1
/*
그 이후에는 누락되었으며 더 누락 $WEBROOT
되었을 수 있습니다 .cd
for vhost in "$WEBROOT"/*/; do
base=$(basename "$vhost")
( cd "$WEBROOT" && tar -czf "$BAKPATH/$(date +%F)_$base.tar.gz" "$base" )
done
그런 다음 디렉터리만 일치하는지 /
확인하세요 ."$WEBROOT/*
그러면 그 안에 아카이브가 생성되어 최상위 디렉터리 $BAKPATH
가 됩니다 .$base
다음은 거의 동일합니다.
find "$WEBROOT" -mindepth 1 -maxdepth 1 -type d \
-execdir tar -czf "$BAKPATH/$(date +%F)"_{}.tar.gz {} \;