find
두 디렉토리에서 중복 파일을 찾고 한 디렉토리의 파일을 다른 디렉토리의 파일의 하드 링크로 바꾸는 쉬운 방법 (명령 또는 일련의 명령, 아마도 관련 )을 찾고 있습니다.
상황은 다음과 같습니다. 여러 사용자가 오디오 파일을 저장하는 파일 서버이며 각 사용자는 자신의 폴더를 가지고 있습니다. 때때로 여러 사람이 동일한 오디오 파일의 사본을 가지고 있습니다. 지금, 이들은 중복입니다. 하드 드라이브 공간을 절약하기 위해 하드 링크가되도록하고 싶습니다.
답변
http://cpansearch.perl.org/src/ANDK/Perl-Repository-APC-2.002/eg/trimtrees.pl에 perl 스크립트 가 있습니다.
명령 행에 이름이 지정된 모든 디렉토리를 탐색하고 MD5 체크섬을 계산하고 동일한 MD5를 가진 파일을 찾으십시오. 파일이 동일하면 실제로 동일하면 실제 비교를 수행하고 두 파일 중 두 번째 파일을 첫 번째 파일에 대한 하드 링크로 바꿉니다.
답변
rdfind
당신이 요구하는 것과 정확하게 johny를 나열한 순서대로 수행 합니다. 중복을 삭제하고 소프트 링크 또는 하드 링크로 교체 할 수 있습니다. symlinks
당신 과 함께 symlink를 절대 또는 상대로 만들 수도 있습니다. 체크섬 알고리즘 (md5 또는 sha1)을 선택할 수도 있습니다.
컴파일되어 있기 때문에 대부분의 스크립팅 된 솔루션보다 빠릅니다. time
2009 년 Mac Mini에 2600 개의 파일이있는 15GiB 폴더에서
9.99s user 3.61s system 66% cpu 20.543 total
(md5 사용).
대부분의 패키지 처리기 (예 : Mac OS X 용 MacPorts)에서 사용할 수 있습니다.
답변
fdupes
도구를 사용하십시오 :
fdupes -r /path/to/folder
디렉토리의 중복 목록을 제공합니다 (-r은 재귀적임). 결과는 다음과 같습니다.
filename1
filename2
filename3
filename4
filename5
filename1과 filename2는 동일하고 filename3, filename4와 filename5도 동일합니다.
답변
http://jak-linux.org/projects/hardlink/hardlink
에서 사용합니다.
답변
답변
주요 목표는 디스크 공간을 절약하는 것이므로 파일 시스템 수준에서 중복 제거 (및 아마도 압축)라는 또 다른 솔루션이 있습니다. 하드 링크 솔루션과 비교하여 다른 링크 된 파일에 실수로 영향을주는 문제는 없습니다.
ZFS는 풀 버전 23부터 중복 제거 (파일 수준이 아니라 블록 수준)를 수행했으며 오래 전부터 압축을 수행했습니다. Linux 를 사용하는 경우 zfs-fuse를 시도 하거나 BSD를 사용하는 경우 기본적으로 지원됩니다.
답변
오늘날의 리눅스에는 https://github.com/g2p/bedup 이 있습니다. btrfs 파일 시스템에서 중복을 제거하지만 1) 스캔 오버 헤드없이 2) 파일을 나중에 쉽게 다시 분기 할 수 있습니다.