이 명령 tar
에는 하나의 옵션이 있습니다 --exclude-from
.
-X, --exclude-from=FILE
Exclude files matching patterns listed in FILE.
로 나열하는 방법 FILE
.
나는 내 홈 디렉토리를 백업하는 스크립트를 만들고 있는데 실수로 중요한 것을 간과하고 싶지 않습니다.
답변1
압축하려는 경우 일부 tar
명령은 해당 작업에 매우 최적화되어 있습니다 /dev/null
.
tar cvf /dev/null . >/tmp/a
.
실제로 데이터를 읽지 않고 모든 파일 목록이 생성됩니다 . 내 10G 집에서는 3초가 걸렸는데, 이는 find
.
따라서 위의 작업을 수행한 다음 제외 목록에 대해 동일한 작업을 수행 /tmp/b
하고 그 diff
사이에 작업을 수행하여 무엇이 누락되었는지 확인할 수 있습니다.
sort
또는 각 출력을 파이프한 다음 comm -3 /tmp/a /tmp/b
제외된 파일만 가져오는 데 사용합니다.
답변2
while read -r pattern; do
printf 'Pattern: "%s"\n' "$pattern"
echo 'Matches:'
find . -path "$pattern" -print
done <patterns
그러면 파일의 각 패턴을 가져와서 patterns
현재 디렉터리의 어떤 이름이 일치하는지 보고합니다.
답변3
tar와 일치 패턴을 다르게 찾기 때문에 이는 까다로울 수 있습니다. 하지만 아마도 다음과 같은 것을 찾고 있을 수도 있습니다.
for pattern in $(cat FILE)
do
find $HOME -path "*$pattern*"
done