응답내 거질문어제 나는 정의된 디렉토리 내의 모든 디렉토리를 별도의 아카이브 파일로 보관하는 bash 스크립트를 작성했습니다. 또한 건너뛰려는 디렉터리 목록이 포함된 파일에 대한 변수를 정의했습니다. 나는 그것이 같기를 바랍니다.--들어오지 못하게 하다매개 변수가 tar
있지만 분명히 이것은 작동하지 않습니다. 이것을 달성할 수 있는 가장 좋은 방법은 무엇입니까? 이것이 grep
내가 가야 할 길이라고 생각합니다 .
#!/bin/bash
#START
TIME=`date +%Y-%m-%d_%Hh%Mm` # Append date and time to backup file
SRCDIR=/srv # Location of directories to backup
DESDIR=/srv/backup # Destination of backup files
EXCLUDE=exclude.txt # File which defines what to exclude from archiving
for dir in $SRCDIR/*/
do
base=$(basename "$dir")
tar -cpzf $DESDIR/$base-$TIME.tar.gz $dir
done
#END
답변1
grep을 사용하여 다음과 같이 디렉터리가 제외 파일에 나열되어 있는지 확인할 수 있습니다.SO에 대한 이 답변:
#!/bin/bash
#START
TIME=`date +%Y-%m-%d_%Hh%Mm` # Append date and time to backup file
SRCDIR=/srv # Location of directories to backup
DESDIR=/srv/backup # Destination of backup files
EXCLUDE=exclude.txt # File which defines what to exclude from archiving
for dir in $SRCDIR/*/
do
base=$(basename "$dir")
if grep -Fxq "$base" $EXCLUDE
then
echo "$base excluded"
else
tar -cpzf $DESDIR/$base-$TIME.tar.gz $dir
fi
done
#END