rsync로 복사할 때 이름으로 기존 파일 제외

rsync로 복사할 때 이름으로 기존 파일 제외

다음 두 명령을 실행하고 있습니다 rsync. 첫 번째 명령에서는 소스의 파일을 대상으로 복사한 다음 두 번째 명령에서는 파일을 확인하고 소스의 파일을 삭제합니다.

rsync --info=progress2 -r /local/data/ /import/myNAS/data
rsync --info=progress2 -r --checksum --remove-source-files /local/data/ /import/myNAS/data

대상에 존재하지 않는 파일을 원본에서 대상으로 복사하고 삭제하고 싶습니다. 이 --ignore-existing플래그를 사용하여 이 작업을 수행할 수 있지만 해당 플래그를 사용하면 최신 파일이 복사됩니다. 타임스탬프는 확인하지 않고 이름만 확인하고 싶습니다. 이는 동일한 이름의 파일이 대상에 존재하는 경우 해당 파일을 원본에서 복사하거나 원본에서 파일을 삭제해서는 안 된다는 의미입니다.

가능합니까?

답변1

귀하의 설명이 작동 방식과 일치하지 않습니다 --ignore-existing. 실제로 대상에 이미 존재하는 파일(최신 파일이라도)이 복사되는 것을 방지해야 합니다.

$ rsync -a a/ b/
$ touch a/new a/update
$ rsync -ai --ignore-existing a/ b/
.d..t....... ./
>f++++++++++ new
$ ls -ln */{new,update}
-rw-r--r--  1 34570  344586812  0 Aug 17 14:50 a/new
-rw-r--r--  1 34570  344586812  7 Aug 17 14:50 a/update
-rw-r--r--  1 34570  344586812  0 Aug 17 14:50 b/new
-rw-r--r--  1 34570  344586812  7 Mar 26 17:02 b/update

a/update이제 업데이트된 타임스탬프가 있지만 rsync는 이를 업데이트하지 않습니다.

-irsync를 다시 실행해 보고 플래그를 추가 하고 기존 파일의 출력을 표시해 주 시겠어요 ? 복사로 인해 복사된 파일에 한 줄을 추가합니다. 거기에 문제를 지적할 수 있는 정보가 있는지 궁금합니다.

관련 정보