rsync는 관련 파일을 제외할 수 없나요?

rsync는 관련 파일을 제외할 수 없나요?

rsync의 제외 옵션은 상대 경로만 허용한다는 것을 알고 있으므로 realpath --relative.

$ls /usr/local/bin
cppman  demangle  e  fusuma  rem  triangle
$realpath --relative-to=$PWD /usr/local/bin/cppman
../../usr/local/bin/cppman
$rsync -va --delete --exclude=$(realpath --relative-to=$PWD /usr/local/bin/cppman) /usr/local/bin /home/user1/Desktop/transport/
created directory /home/shepherd/Desktop/transport
bin/
bin/cppman
bin/demangle
bin/e
bin/fusuma
bin/rem
bin/triangle

sent 26,689 bytes  received 189 bytes  53,756.00 bytes/sec
total size is 26,215  speedup is 0.98

보시다시피 파일 cppman아니요상대적이더라도 여전히 제외됩니다. 왜?

답변1

제외 경로는 현재 작업 디렉터리가 아닌 소스("전송 루트")를 기준으로 시작됩니다. bin전송할 디렉터리이므로 경로는 다음과 같습니다 /bin/cppman.

rsync -va --delete --exclude=/bin/cppman /usr/local/bin /home/user1/Desktop/transport/

또는 앵커가 없는 경우(인출선 없음 /):

rsync -va --delete --exclude=bin/cppman /usr/local/bin /home/user1/Desktop/transport/

/usr/local/bin/cppman두 개의 파일 과 가 있는 경우 /usr/local/bin/foo/bin/cppman고정되지 않은 버전은 두 파일을 모두 제외하고 첫 번째 명령은 첫 번째 파일을 제외합니다.

관련 정보