디렉터리 비교에서는 1시간 ± 2초의 시간 차이를 무시합니다.

디렉터리 비교에서는 1시간 ± 2초의 시간 차이를 무시합니다.

저는 종종 Android 휴대폰과 Linux PC 간에 음악 폴더를 동기화하고 싶습니다. 휴대폰에 있는 파일은 FAT32를 사용하여 SD 카드에 저장되며 Windows 노트북이나 Linux 데스크톱에서 가져올 수 있습니다. 메타데이터만 비교하고 싶습니다. 그렇지 않으면 콘텐츠를 비교하는 데 시간이 오래 걸립니다.

Meld 또는 rsync를 사용하여 차이점을 찾으면 잘못된 긍정이 많이 발생합니다. 이는 FAT32가 파일 시간을 2초 해상도와 현지 시간(영국 시간)으로 저장하는 반면 Linux에서는 파일 수정 시간이 하위 폴더에 저장되기 때문입니다. -체재. 두 번째 해상도 및 UTC. 그래서 겨울에 SD카드에 복사한 파일을 보면 지금은 여름이고 그 반대의 경우도 정확히 1시간(정확도는 2초)의 시차를 알 수 있습니다.

폴더를 스캔하고 파일 시간이 2초 간격이거나 59m58s에서 1h00m02s 사이인 경우 동일한 것으로 간주할 수 있는 도구가 있습니까?

답변1

이것으로 rsync당신은 시간을 완전히 무시할 수 있습니다 --ignore-times.

또는 타임스탬프가 특정 초(귀하의 경우 3602의 경우 1시간 + 2초)만큼 다를 수 있도록 허용합니다 --modify-window=3602(타임스탬프가 30분씩 다른 파일도 이 창에 속한다는 점에 유의하세요).

세 번째 옵션은 위의 시간을 무시하고(크기만 고려할 수도 있음 --size-only) 해당 시간을 체크섬 계산에 강제로 사용하는 것입니다 --checksum.

답변2

--modify-window옵션 사용동기화2초 해상도를 평면화합니다.

  --modify-window=NUM, -@
       When comparing two timestamps, rsync treats the timestamps
       as being equal if they differ by no more than the modify-
       window value.  The default is 0, which matches just
       integer seconds.  If you specify a negative value (and the
       receiver is at least version 3.1.3) then nanoseconds will
       also be taken into account.  Specifying 1 is useful for
       copies to/from MS Windows FAT filesystems, because FAT
       represents times with a 2-second resolution (allowing
       times to differ from the original by up to 1 second).

답변3

fdupes중복 파일을 찾아서 제거할 수 있는 명령줄 프로그램인 를 사용할 수 있습니다 . 선택적으로 지정된 시간(초)의 수정 시간 차이를 무시할 수 있습니다. 를 사용하려면 fdupes다음 명령을 실행하면 됩니다.

fdupes -r -S -T2m /path/to/directory1 /path/to/directory2

최대 2분의 시간 차이를 무시하면서 두 디렉터리 모두에서 중복 파일을 반복적으로 검색합니다.

dirsyncpro(파일과 폴더를 동기화하고 백업하기 위한 크로스 플랫폼 프로그램)을 사용하여 새 프로필을 생성하고 소스 및 대상 디렉터리를 설정할 수도 있습니다 . 그런 다음 옵션 탭으로 이동하여 옵션 비교를 선택하세요. "시간" 섹션에서 "시차 무시" 옵션을 선택하고 범위를 59분 58초에서 1시간 00분 2초 사이로 설정할 수 있습니다.

관련 정보