rsync: 제외 파일의 제외 패턴이 작동하지 않습니다.

rsync: 제외 파일의 제외 패턴이 작동하지 않습니다.

모든 vim 백업 파일(숨겨진 *.swp 파일)을 동기화에서 제외하려고 합니다. 내 제외 파일의 패턴은 다음과 같습니다.

**.swp

내 rsync 호출:

rsync -ravu --exclude=~/sync/exclude.txt /home/username/Documents/ remotehost:/home/username/Documents/

이 파일은 동기화 루트의 하위 디렉터리에 있습니다. 작동하지 않습니다. Rsync는 vim 백업 파일도 복사합니다. 나는 또한 시도했다: *.swp

내가 뭘 잘못했나요?

답변1

(패턴이 포함된 파일 이름 필요) --exclude대신 (패턴 필요)을 사용하고 있습니다 .--exclude-from

재귀 동기화를 활성화할 수 있으므로 -r( --recursive) 및 -a( --archive) 도 필요하지 않습니다 . 사실 -a매뉴얼과 -a똑같습니다 .-rlptgoD

답변2

단일 패턴이 필요하지 않은 경우 **및 를 사용하는 것이 좋습니다 --exclude. 이 --include패턴을 사용하면 --exclude패턴과 일치하는 디렉터리가 복사본에 포함됩니다.

rsync -a  --include '*/' --exclude='.*.swp' /home/username/Documents/ remotehost:/home/username/Documents/

원격 사용자 이름이 /home/username홈 디렉터리인 경우 상대 경로를 사용하여 더욱 단순화할 수 있습니다.

rsync -a  --include '*/' --exclude='.*.swp' /home/username/Documents/ remotehost:Documents/

vim또한 일치하는 항목이 이미 존재하거나 사용 중인 경우 다른 파일 이름이 스왑 파일로 사용된다는 점을 명심하세요 . *.swp하지만 이 하나의 패턴으로 대부분을 포착할 수 있습니다. 문서에서 경고하는 내용은 다음과 같습니다.

파일이 이미 존재하는 경우(예: 충돌에서 복구하는 경우) 경고가 표시되고 ".swo", ".swn" 등의 다른 확장자가 사용됩니다.

.*.sw[a-p]충분히 우려된다면 사용할 제외 패턴을 조정하면 됩니다.

관련 정보