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/
원본 폴더는 포함되지 않습니다.