Rsync에서 이름과 깊이별로 파일을 제외하는 방법

Rsync에서 이름과 깊이별로 파일을 제외하는 방법

rsync를 사용하여 일부 백업을 자동화하려고 하는데 다음 문제가 발생합니다. 복제에서 제외하려는 일부 콘텐츠가 포함된 파일이 있습니다. 파일에 한 줄만 있다고 가정

exc

rsync가 수행하려는 작업은 rsync를 제공하는 디렉터리에서 "exc"라는 이름의 파일이나 디렉터리를 제외하는 것입니다. 그러나 다음과 같은 트리가 있는 경우:

./
 |
 +---exc
 |      file1
 |
 +---directory
     +  file2
     |
     |
     +---exc
            file3

다이어그램이 명확하기를 바랍니다. 내가 원하는 것은 첫 번째 EXC를 제외하는 것이지만, EXC 줄이 포함된 파일을 전달하는 동안 두 번째 EXC를 복사하면 둘 다 제외됩니다. ex라는 더 깊은 파일이 있을 수 있으므로 제외 파일의 줄은 루트 파일인 exc만 가리켜야 합니다.

제외 패턴은 어떤 모습이어야 합니까?

답변1

--exclude앞에 을 추가하여 /운송 루트에 고정 할 수 있습니다 . 이렇게 하면 --exclude /exc원하는 대로 작동됩니다.

테스트 사례를 사용하세요.

mkdir -p exc directory/exc
touch exc/file1 directory/file2 directory/exc/file3
rsync -av --exclude /exc . /tmp/

/tmp에는 /exc/* 디렉터리를 포함한 현재 폴더가 포함되지만 exc/원본 폴더는 포함되지 않습니다.

관련 정보