중복 파일을 찾고 삭제하는 방법


125

나는 게으른 음악 컬렉션을 가지고 있으며 거기에 일부 복제본이 있습니다. 중복 파일을 찾는 방법이 있습니까? 해시를 수행하고 두 파일에 동일한 해시가 있는지 확인하여 최소한.

확장명 외에 동일한 이름을 가진 파일을 찾는 보너스 포인트-mp3 및 ogg 형식 버전의 노래가 있다고 생각합니다.

가장 쉬운 방법이라면 명령 줄을 사용하여 기쁘게 생각합니다.

답변:


138

나는 이것을 위해 사용 fdupes합니다. 로 리포지토리에서 설치할 수있는 명령 줄 프로그램입니다 sudo apt install fdupes. 당신은 그것을 호출 할 수 fdupes -r /dir/ect/ory있으며 그것은 속임수 목록을 인쇄합니다. fdupes에는 간단한 홈페이지Wikipedia 기사 가 있으며 더 많은 프로그램이 나열되어 있습니다.


7
또한 보관할 사본을 선택하고 다른 사본을 삭제하거나 원하는 경우 모든 사본을 보관할 수있는 "-d"옵션도 있습니다.
Matthew Crumley

어떻게 문제를 해결하기 위해 -d 옵션을 사용할 수 있습니다 여기에
존 맥킨 프 루이

fdupe가 중복 파일 대신 중복 폴더를 나열 할 수 있습니까?
앤더슨 그린

2
재귀 디렉토리 트리에서 모든 복제본을 삭제하는 방법 (각 파일마다 하나의 사본 만 남기는 방법)을 자세히 설명 할 수 있습니까? 유지할 파일을 매번 지정할 필요없이 자동으로 수행하려고합니다. 복제본 중 하나만 선택해야합니다.
becko

5
fdupes -r . -d -N첫 번째 인스턴스를 저장하고 듀피를 삭제해야합니다. fdupes . -d -N
Simon B

61

FSlint 에는 GUI 및 기타 기능이 있습니다. FAQ에서 중복 검사 알고리즘에 대한 설명 :

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint fslint 설치


12
감사. 명령 이름은 "fslint-gui"이며 명령 줄 도구는 기본적으로 $ PATH에 없으며 / usr / share / fslint / fslint에 있습니다. fslint를 실행하여 (/ usr / lib / command-not-found를 통해) 어떤 패키지에 대한 도움말을 얻지 못했을 때 혼란 스러웠습니다.
nealmcb

정확히 필요한 것
Tebe

1
@nealmcb을 사용 sudo apt-get install fslint하는 경우 설치는 현재 fslint-gui경로 에 들어가므로 입력 만하면 어디에서나 실행할 수 있습니다 fslint-gui. fslint-gui입력하여 생명체의 위치를 찾을 수 있습니다 which fslint-gui(Python 스크립트처럼 보입니다).
user29020

55

programs/scripts/bash-solutions중복 항목을 찾아 아래에서 실행할 수있는의 목록 nix:

  1. dupedit : 체크섬없이 한 번에 많은 파일을 비교합니다. 여러 경로가 동일한 파일을 가리킬 때 파일을 자신과 비교하지 않습니다.
  2. dupmerge : 다양한 플랫폼에서 실행 (Cygwin, * nix, Linux 등의 Win32 / 64)
  3. dupseek : 읽기를 줄이기 위해 최적화 된 알고리즘을 갖춘 Perl.
  4. fdf : Perl / c 기반이며 대부분의 플랫폼 (Win32, * nix 등)에서 실행됩니다. MD5, SHA1 및 기타 체크섬 알고리즘 사용
  5. freedups : 지정한 디렉토리를 검색하는 쉘 스크립트. 두 개의 동일한 파일을 찾으면 서로 연결하기 어렵습니다. 이제 두 개 이상의 파일이 해당 디렉토리에 여전히 존재하지만 데이터의 사본 하나만 디스크에 저장됩니다. 두 디렉토리 항목 모두 동일한 데이터 블록을 가리 킵니다.
  6. fslint : 명령 줄 인터페이스와 GUI가 있습니다.
  7. liten : md5 체크섬과 새로운 바이트 비교 알고리즘을 사용하는 순수 Python 중복 제거 명령 행 도구 및 라이브러리. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : 명령 행 도구 인 원래 Liten을 다시 쓰지만 SHA-1 체크섬 (Linux, Mac OS X, * nix)을 사용하는 빠른 대화식 모드
  9. rdfind : "원본 / 잘 알려진"소스 (여러 디렉토리가 제공되는 경우)에서 삭제하지 않기 위해 입력 매개 변수 (검사 할 디렉토리)의 순서에 따라 중복 순위를 매기는 소수 중 하나입니다. MD5 또는 SHA1을 사용합니다.
  10. rmlint : 명령 줄 인터페이스와 다른 보푸라기를 찾기위한 많은 옵션이있는 빠른 파인더 (MD5 사용)
  11. ua : 유닉스 / 리눅스 명령 줄 도구. 찾기 등에서 작동하도록 설계되었습니다.
  12. findrepe : 중복 파일을 효율적으로 검색하도록 설계된 무료 Java 기반 명령 줄 도구로 Zip과 jar 내에서 검색 할 수 있습니다 (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : Perl로 작성된 작은 스크립트. 빠르고 효율적으로 업무를 수행합니다. 1
  14. ssdeep : Context Triggered Piecewise Hashing을 사용하여 거의 동일한 파일 식별

4
이 프로그램들 중 어떤 파일도 중복 된 폴더를 찾을 수 있습니까 (복제 파일이 아닙니까?)
Anderson Green

3
@AndersonGreen rmlint은 중복 디렉토리를 찾을 수 있습니다. rmlint -T dd
oligofren

우분투의 경우 다른 방법은 파일을 열고 주어진 확장자 (예 : .mp3)를 검색 (control-f) 한 다음 파일 이름을 정렬하는 것입니다. 이렇게하면 복제본을 손으로 삭제할 수 있으며 동시에 복제본의 위치가 표시됩니다.
axd

6

중복 제거 작업이 음악과 관련된 경우 먼저 picard 응용 프로그램을 실행하여 음악 을 올바르게 식별하고 태그를 지정하십시오 (이름이 잘못된 경우에도 중복 된 .mp3 / .ogg 파일을 찾을 수 있음). picard는 Ubuntu 패키지로도 제공됩니다.

musicip_puid태그를 기반으로 모든 중복 노래를 쉽게 찾을 수 있습니다.


4

이 작업을 수행하는 다른 스크립트는 rmdupe 입니다. 저자의 페이지에서 :

rmdupe는 표준 리눅스 명령을 사용하여 파일 이름이나 확장자에 관계없이 지정된 폴더 내에서 중복 파일을 검색합니다. 중복 후보를 제거하기 전에 바이트 단위로 비교됩니다. rmdupe는 하나 이상의 참조 폴더에 대해 중복을 검사하고, 파일을 제거하는 대신 휴지통을 비울 수 있으며, 사용자 정의 제거 명령을 허용하며, 지정된 크기의 파일로 검색을 제한 할 수 있습니다. rmdupe에는 파일을 실제로 제거하지 않고 주어진 명령에 대해 수행 할 작업을보고하는 시뮬레이션 모드가 포함되어 있습니다.



2

음악 관련 중복 식별 및 삭제의 경우 http://musicbrainz.org/의 Picard 및 Jaikoz가 최상의 솔루션입니다. Jaikoz는 노래 파일의 데이터를 기반으로 음악에 자동으로 태그를 추가합니다. 노래를 식별하고 모든 메타 데이터를 할당하기 위해 노래 이름이 필요하지 않습니다. 무료 버전은 한 번에 제한된 수의 노래에만 태그를 지정할 수 있지만 원하는만큼 여러 번 실행할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.