내 사용자는 점점 더 많은 공간을 소비하고 HW 및 보관 비용을 생성하는 수많은 중복 파일을 저장하는 경향이 있습니다.

다음을 위해 예약된 작업을 만들 생각입니다.

  1. 중복 파일 찾기(파일 이름/크기뿐만 아니라 파일 MD5 합계 확인)
  2. 원본 파일 1개만 남겨주세요
  3. 파일(위 참조)에 대한 링크(바로 가기)로 다른 중복 복사본을 교체합니다.

그것을 보관하는 방법에 대한 아이디어가 있습니까?

스크립트/도구/팁?

2021년 10월 28일 수정

그 동안 findDup을 찾았습니다: https://www.sentex.ca/~mwandel/finddupe/

원본 파일에 대한 하드 링크를 만들 수 있습니다. 나는 이것을 시도했습니다 - 그것은 복제 된 것을 올바르게 보여주고, 하드 링크를 생성하는 것 같습니다 - 그러나 ... 결국 HDD 사용 통계의 차이를 볼 수 없습니다.

왜? Windows가 여유 공간을 잘못 계산할 수 있습니까?

answer

나는 당신의 요구에 대답하는 작은 스크립트를 파이썬으로 만들었습니다.

그것은 사용 fdupes -r <dir>(심지어 다른 이름으로) 모든 중복 파일을 얻기 위해. 그런 다음 출력을 반복하고 중복된 파일을 삭제한 다음 심볼릭 링크를 만듭니다.

os.system()수정을 가능하게 하기 위해 줄의 주석을 해제할 수 있습니다 .

아마도 이 스크립트에 매개변수를 전달하고 싶을 것입니다(경로 또는 기타와 같은). 이 필요를 검색할 수 있습니다. :)

import os

root_dir='/home/user/directory'

blocks_of_dup_files = os.popen('fdupes -r ' + root_dir).read().split('\n\n')

if(blocks_of_dup_files[-1] == '') :
    blocks_of_dup_files.pop()


for files in blocks_of_dup_files:
    files = files.split('\n')
    keeped_file = files.pop()
    for file in files:
        print('rm -f ' + file)
        print('ln -s ' + keeped_file + ' ' + file)

        #os.system('rm -f ' + file)
        #os.system('ln -s ' + keeped_file + ' ' + file)

새 기고자
Martin 은 이 사이트의 새로운 기여자입니다. 설명을 요청하고, 댓글을 달고, 답변할 때 주의하십시오. 행동 강령을 확인하십시오 .

Windows의 경우 https://github.com/Caspeco/BlobBackup/tree/master/DuplicateFinder를 작성했습니다.

코드를 컴파일하려면 Visual Studio가 필요합니다. 링크가 있는 경우 하나의 "파일"이 수정되면 모두 수정됩니다(또는 오히려 하나의 파일만 있음). 이는 사용자에게 원치 않는 동작일 수 있습니다.