Linux에서 동일한 파일을 확인하고 위치에 따라 삭제

Linux에서 동일한 파일을 확인하고 위치에 따라 삭제

fdupes를 사용하여 동일한 파일을 찾아 삭제합니다.

하지만 이런 말이라도 했으면 좋았을 텐데…

  • 디렉터리 A 또는 해당 하위 디렉터리에서 모든 중복 파일 찾기
  • 하위 디렉터리 B와 C에 중복된 파일이 있으면 항상 B의 파일을 삭제하세요.

즉, B에 아직 존재하지 않는 모든 파일을 C에 보관합니다. 디렉터리 구조가 동일하지 않으므로 여기서 rsync는 쓸모가 없습니다.

나는 fdupes가 이 기능을 제공한다고 생각하지 않습니다. 각 쌍에 대해 제거/유지할 항목을 수동으로 선택해야 합니다.

그래서 저는 동일한 작업을 수행하기 위해 빠른 Python 스크립트를 작성하려고 합니다. 하지만 두 파일이 동일한지 확인하는 신뢰할 수 있는 방법이 될 수 있는 일종의 고유 ID를 각 파일에 제공하는 Python에서 호출할 수 있는 빠른 시스템 명령이 있습니까? 나는 파이썬에 파일을 로드하고 그 내용을 해싱하는 것과 관련되지 않은 것을 생각하고 있습니다.

답변1

아니요, 해싱은 여러 파일이 일치하는지 알 수 있는 유일한 빠른 방법이지만, 아무도 충돌하려고 하지 않는 경우 동일한 크기의 파일만 비교하거나 md5와 같은 빠른 해시를 선택하면 작업 속도를 높일 수 있습니다. git/zfs/etc를 사용하여 완료되었습니다.

그렇지 않으면

fdupes -r A B | grep B | xargs -I {} rm "{}"

관련 정보