rsync에서 외부 파일을 사용하여 --delete에 예외를 추가할 수 있나요?

rsync에서 외부 파일을 사용하여 --delete에 예외를 추가할 수 있나요?

나는 원해요 rsync:

  • 소스에서 타겟으로 모든 파일 복사
  • 파일이 소스에 더 이상 존재하지 않으면 특정 파일을 제외하고 대상에서 제거하십시오.

예외를 나열해야 합니다.별도의 파일로, 그 옵션을 사용할 수 있는 것처럼 말이죠 --exclude-from.

가능합니까?

답변1

제외 옵션에 파일 목록을 포함할 수 있는지 확실하지 않지만 다음을 시도해 볼 수 있습니다.

$ rsync -avz --exclude delete_file_1.php --exclude dir_1/file4.txt \
     directory_source/ directory_destination/

또는 다음을 수행할 수 있습니다.

$ rsync -avz --exclude 'dir_1/dir_2/file_3.php' source/ destination/

또는 다음을 수행할 수 있습니다.

$ rsync -avz --exclude 'dir*' <-- wildcard match here

내가 당신이라면 원격 대상과 동기화할 테스트 폴더를 만들고 어떻게 진행되는지 확인하겠습니다. 제외 옵션이 정확하다면 이를 조작하여 많은 수의 파일을 제외할 수 있습니다.

답변2

분명히 이는 다음과 같이 rsync를 2번 실행하는 경우에만 가능합니다.

rsync -a source/ dest
rsync -a --exclude-from=files.txt --delete source/ dest

files.txt삭제하고 싶지 않은 파일이 포함되어 있습니다 .

관련 정보