"--exclude-from"이 "tar" 파일과 일치하는지 디버깅/검증하는 방법은 무엇입니까?

"--exclude-from"이 "tar" 파일과 일치하는지 디버깅/검증하는 방법은 무엇입니까?

이 명령 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

관련 정보