모든 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]
충분히 우려된다면 사용할 제외 패턴을 조정하면 됩니다.