rsync 애플리케이션을 사용하여 두 디렉터리를 비교할 때 타임스탬프 변경에 대한 출력이 많이 있음을 알 수 있습니다. 예를 들어:
$ rsync --dry-run -avh -i --delete --size-only --checksum --stats dir1/ dir2/
...
...
.d..t...... 3com/
.d..t...... RTL8192E/
.d..t...... acenic/
.d..t...... adaptec/
.d..t...... advansys/
.d..t...... amd/
.d..t...... amdgpu/
.d..t...... ar3k/
.d..t...... ar3k/1020201coex/
.d..t...... asihpi/
.d..t...... ath10k/
...
...
파일의 md5sum이 다를 때 변경 사항을 확인하고 싶습니다. 타임스탬프 변경 사항을 보고 싶지 않습니다. 이러한 출력을 방지하려면 어떻게 해야 합니까 d..t
?
감사합니다.
편집하다:
--size-only
에 암시가 있을 줄 알았는데 --no-times
그렇지 않더군요. 답변을 주신 @BowlOfRed에게 감사드립니다. 따라서 최종 작업 명령은 다음과 같습니다.
rsync --dry-run -avh --no-times -i --delete --checksum --stats dir1/ dir2/
답변1
-a
모든 파일/디렉터리에서 타임스탬프를 보존하도록 플래그를 통해 지정 하면 해당 변경 사항이 발생함을 보고합니다.
플래그를 지정하지 않거나 -t
( via 를 통해 전달됨 -a
) --no-times
명령줄에 추가하세요.
rsync
이제 시간은 업데이트가 필요한지 확인하는 기준으로 사용되지 않으며 유일한 차이점이 타임스탬프인 경우 업데이트가 시도되지 않습니다.
답변2
이는 디렉터리 타임스탬프처럼 보입니다. 출력을 파이핑하여 무시할 수 있습니다 grep -v '/$'
.
완전히 정확하려면 d..t
디렉터리 순서와만 일치하는 보다 완전한 RE를 사용하고 해당 줄을 무시하세요.
rsync … | grep -v '^\.d\.\.t\.\.\.\.\.\. .*/$'
답변3
허용되는 답변의 대안으로 -a 대신 -r --size-only를 사용합니다(-rlptgoD로 확장됨).
타임스탬프 차이를 방지하므로 "t"(rlptgoD)를 건너뜁니다. 다른 것이 필요하지 않다고 가정하면 -a 대신 -r을 사용하십시오(lpgoD).
그 중: l(작은 L)은 심볼릭 링크, p는 권한, g는 그룹, o는 소유자, D는 --devices --specials와 동일합니다.
귀하의 질문은 타임스탬프 차이를 피해야 한다는 것이며 귀하가 제공한 예에는 체크섬이 포함되어 있지만 체크섬을 수행할 필요는 없다고 가정합니다(시간이 더 오래 걸립니다). 예를 들면 다음과 같습니다.
rsync -rhinv --size-only --progress --delete --stats
귀하의 예에는 -ahiv가 있으므로 그들이 무엇을 하는지 알고 있다고 가정합니다. -n은 --dry-run의 약어입니다.
주제에서 벗어남: 이전에는 --stats를 사용한 적이 없습니다. 방금 이것을 시도했는데 rsync 출력에 약 12줄의 요약이 추가되었습니다. 알아 둘만 한. 긴 출력 목록이 예상된다면 개인적으로 --stats를 계속 사용할 것입니다. 그렇지 않으면 그렇지 않습니다.