rsync --ignore-times 매개변수가 Ubuntu 16.04에서 작동하지 않습니다.

rsync --ignore-times 매개변수가 Ubuntu 16.04에서 작동하지 않습니다.

이를 기반으로 포괄적인 백업 스크립트를 구현하고 싶기 rsync때문에 요구 사항에 따라 올바른 매개 변수를 결정하려고 합니다. 기본적으로 변경된 파일이 수정 시간에 관계없이 소스에서 대상으로 복사되기를 원합니다(즉, 소스 파일이 대상 파일보다 오래되었거나 최신인지 여부에 관계없이 내용이 다르면 복사해야 함). 그러나 작동하지 않습니다.

../src/test.txt
../dst/test.txt

위의 폴더 구조입니다. 다음 명령을 처음 실행하면 test.txtsrc에서 dst 폴더로 복사됩니다.

rsync -avh --ignore-times src/ dst/

그런 다음 src/test.txt의 내용을 수정하고 위 명령을 다시 실행했는데, 이번에도 업데이트된 파일을 dst 폴더에 복사했습니다.

그런데 그다음 dst 폴더에 있는 test.txt를 수정해서 위의 명령어를 실행해 보았는데, 이번에는 작동하지 않고 src/에서 dst/ 폴더로 파일이 복사되지 않더군요. 하지만 고려해보면이 답변, 매개변수를 추가한 이후로 제대로 작동할 것입니다 --ignore-times.

이것은 우분투 버그입니까, 아니면 제가 뭔가 잘못하고 있습니까? 내용이 다를 때(대상 파일이 더 최신인 경우에도) 파일이 항상 소스에서 대상으로 복사되도록 하려면 어떤 매개변수를 추가해야 합니까?

편집하다

나는 --checksum체크섬을 기준으로만 복사하고 타임스탬프를 완전히 무시하는 매개변수를 추가해 보았습니다(맨 페이지에 명시되어 있음). 그러나 그것조차 작동하지 않습니다.

답변1

어떤 이유로 --archiveor 패턴이 or 매개변수 a와 함께 작동하지 않는 것 같습니다 . 그러나 단순 재귀 복사 패턴( 또는 )입니다. 그래서 제 경우에는 다음과 같이 완벽하게 작업을 수행했습니다.--ignore-times--checksum--recursiver

rsync -vcr src/ dst/

관련 정보