중복 파일을 하드 링크로 바꾸는 쉬운 방법이 있습니까?


136

find두 디렉토리에서 중복 파일을 찾고 한 디렉토리의 파일을 다른 디렉토리의 파일의 하드 링크로 바꾸는 쉬운 방법 (명령 또는 일련의 명령, 아마도 관련 )을 찾고 있습니다.

상황은 다음과 같습니다. 여러 사용자가 오디오 파일을 저장하는 파일 서버이며 각 사용자는 자신의 폴더를 가지고 있습니다. 때때로 여러 사람이 동일한 오디오 파일의 사본을 가지고 있습니다. 지금, 이들은 중복입니다. 하드 드라이브 공간을 절약하기 위해 하드 링크가되도록하고 싶습니다.


20
하드 링크로 인해 발생할 수있는 한 가지 문제는 누군가가 자신이 하드 링크 한 음악 파일 중 하나에 대해 다른 사람들이 자신의 음악에 액세스하는 데 실수로 영향을 줄 수있는 작업을 수행하기로 결정한 경우입니다.
Steven D

4
또 다른 문제는 동일한 인코더로 동일한 소스에서 가져온 경우에도 "일부 정말 큰 조정"을 포함하는 두 개의 서로 다른 파일이 비트마다 동일하지 않을 가능성이 높다는 것입니다.
msw

3
더 나은 해결책은 공개 음악 폴더를 갖는 것입니다 ...
Stefan


1
@ tante : symlinks를 사용하면 문제가 해결되지 않습니다. 사용자가 파일을 "삭제"하면 파일에 대한 링크 수가 줄어 듭니다. 카운트가 0에 도달하면 파일이 실제로 삭제됩니다. 그게 전부입니다. 따라서 삭제는 하드 링크 된 파일에는 아무런 문제가 없으며, 유일한 문제는 파일을 편집하거나 (확실히 불가능한) 사용자가 파일을 덮어 쓰려고 시도하는 것입니다 (로그인 한 경우 가능).
maaartinus

답변:


41

http://cpansearch.perl.org/src/ANDK/Perl-Repository-APC-2.002/eg/trimtrees.pl에 perl 스크립트 가 있습니다.

명령 행에 이름이 지정된 모든 디렉토리를 탐색하고 MD5 체크섬을 계산하고 동일한 MD5를 가진 파일을 찾으십시오. 파일이 동일하면 실제로 동일하면 실제 비교를 수행하고 두 파일 중 두 번째 파일을 첫 번째 파일에 대한 하드 링크로 바꿉니다.


소리 완벽한 , 감사합니다! 나는 그것을 시도하고 설명대로 작동하면 받아들입니다!
Josh

3
이것은 내가 요청한 것을 정확하게 수행했습니다. 그러나 dedup이있는 ZFS가 결국에는 방법이 될 것이라고 믿습니다. 파일에 약간의 차이가있어서 일부만 하드 링크 될 수 있다는 것을 알았 기 때문입니다.
Josh

11
이것을 피했지만 더 많은 연구를 한 결과, 나는 그렇지 않았습니다. rdfind모든 주요 플랫폼 (os x, linux, (cyg) win, solaris)의 패키지 관리자를 통해 사용할 수 있으며 놀라운 기본 속도로 작동합니다. 아래 답변을 확인하십시오.
oligofren

@oligofren 나는 같은 생각을하고 있었지만 쳤다 [Errno 31] Too many links. 이 흠집은 그것을 처리하는 유일한 것 같습니다.
phunehehe

5
동일한 크기의 다른 파일이 하나 이상있는 파일 만이 아니라 모든 단일 파일의 체크섬을 계산하는 것은 불필요하게 비효율적이며 불필요하게 해시 충돌이 발생하기 쉽습니다.
Charles Duffy

85

rdfind당신이 요구하는 것과 정확하게 johny를 나열한 순서대로 수행 합니다. 중복을 삭제하고 소프트 링크 또는 하드 링크로 교체 할 수 있습니다. symlinks당신 과 함께 symlink를 절대 또는 상대로 만들 수도 있습니다. 체크섬 알고리즘 (md5 또는 sha1)을 선택할 수도 있습니다.

컴파일되어 있기 때문에 대부분의 스크립팅 된 솔루션보다 빠릅니다. time2009 년 Mac Mini에 2600 개의 파일이있는 15GiB 폴더에서

9.99s user 3.61s system 66% cpu 20.543 total

(md5 사용).

대부분의 패키지 처리기 (예 : Mac OS X 용 MacPorts)에서 사용할 수 있습니다.


11
+1 나는 그것을 사용 rdfind하고 사랑했다. 그것은 -dryrun true당신이 무엇을했는지 알려주 는 옵션을 가지고 있습니다. 중복을 하드 링크로 바꾸는 것은 간단합니다 -makehardlinks true. 멋진 로그를 만들었고 여유 공간이 얼마나되는지 알려주었습니다. 또한 저자의 벤치 마크에 따르면 rdfind는 더프 및 fslint보다 빠릅니다.
Daniel Trebbien

잘 했어 나는 fdupes를 사용했지만, 최신 Ubuntu 14.10에는 하드 링크 dupe에 대한 -L 옵션이 없습니다. OSX의 Homebrew에는 속도가 느리고 존재하지 않았 으므로이 대답이 더 좋습니다. 감사!
oligofren

매우 똑똑하고 빠른 알고리즘.
ndemou

2
이 도구의 성능은 알고리즘 자체와 더 관련이 있고 컴파일 된 도구 또는 스크립트와는 관련이 없다고 생각합니다. 이러한 종류의 작업에서 디스크는 거의 항상 병목 현상이 발생합니다. 스크립팅 된 도구가 체크섬에서 CPU를 굽는 동안 비동기 I / O 작업이 진행되고 있는지 확인하는 한 기본 바이너리뿐만 아니라 수행해야합니다.
cdhowie

rdfind는 새로운 OS와 컴파일러에 크게 의존합니다. (개발 도구를 거의 완전히 재 구축하지 않으면 CentOS 6.x에서 실행되지 않음)
Cosmo F

49

fdupes도구를 사용하십시오 :

fdupes -r /path/to/folder디렉토리의 중복 목록을 제공합니다 (-r은 재귀적임). 결과는 다음과 같습니다.


filename1
filename2

filename3
filename4
filename5


filename1과 filename2는 동일하고 filename3, filename4와 filename5도 동일합니다.


1
Ubuntu 참고 : 2013 년 9 월 현재 안정적인 릴리스 (1.50-PR2-3)가 없으므로 업데이트가 아직 우분투에 나타나지 않습니다.
스튜어트 Axon

11
우분투와 데비안 모두에 fdupes_1.50-PR2-4를 설치하려고 시도했지만 -L 플래그도 없습니다. github.com/tobiasschulz/fdupes 에서 운 좋게 구축하는 것은 매우 쉬웠습니다.
neu242

3
시도 rdfind와 같은 - fdupes하지만 빠른 가능한 OS X과 Cygwin에서에뿐만 아니라.
oligofren

6
fdupes중복 된 부분 만 찾거나 하드 링크로 대체하지 않는 것이므로 질문 IMO에 대한 답변은 아닙니다.
Calimo

2
jdupes기반으로 하는 유사한 도구가 fdupes있지만 중복 파일을 심볼릭 링크 ( -l), 하드 링크 ( )로 바꾸 -L거나 btrfs가 파일 시스템 수준에서 블록을 중복 제거하도록 지시 할 수도 있습니다 ( btrfs를 -B사용하는 경우).
Marius Gedminas

23

http://jak-linux.org/projects/hardlink/hardlink 에서 사용합니다.


1
좋은 힌트, 나는 일반 기본 code.google.com/p/hardlinkpy를 사용하고 있지만 이것은 한동안 업데이트되지 않았습니다 ...
meduz

2
이것은 hardlinkFedora / RHEL / etc 의 원본과 비슷합니다 .

1
hardlink많은 Linux 패키지 시스템 (~ 2014 이후)에서 기본 바이너리이며 매우 빠릅니다. 1,2M 파일 (320GB)의 경우 단 200 초가 걸렸습니다 (파일의 약 10 % 연결).
Marcel Waldvogel

FWIW, 위가 hardlink페도라는 동안 줄리안 안드레스 Klode에 의해 만들어진 hardlink야쿱 옐리네크 (: 소스에 의해 만들어진 pagure.io/hardlink - 페도라 패키지 이름 : 하드 링크)
maxschlepzig

18

이것은 "fslint"가 제공하는 기능 중 하나입니다 - http://en.flossmanuals.net/FSlint/Introduction

"병합"버튼을 클릭하십시오 :

스크린 샷


4
-m은 복제본을 하드 링크로 연결하고, -d는 하나를 제외한 모든 항목을 삭제하고, -t는
드라

1
우분투에서해야 할 일 : sudo apt-get install fslint /usr/share/fslint/fslint/findup -m /your/directory/tree(디렉토리 / usr / share / fslint / fslint /는 기본적으로 $ PATH에 없습니다)
Jocelyn

14

주요 목표는 디스크 공간을 절약하는 것이므로 파일 시스템 수준에서 중복 제거 (및 아마도 압축)라는 또 다른 솔루션이 있습니다. 하드 링크 솔루션과 비교하여 다른 링크 된 파일에 실수로 영향을주는 문제는 없습니다.

ZFS는 풀 버전 23부터 중복 제거 (파일 수준이 아니라 블록 수준)를 수행했으며 오래 전부터 압축을 수행했습니다. Linux 를 사용하는 경우 zfs-fuse를 시도 하거나 BSD를 사용하는 경우 기본적으로 지원됩니다.


이것은 아마도 내가 결국 갈 방법이지만 BSD의 ZFS 구현은 dedup을 수행합니까? 나는 그렇지 않다고 생각했다.
Josh

또한 DragonFlyBSD의 HAMMER 파일 시스템은 중복 제거를 지원합니다.
hahaamu

14
ZFS dedup은 아무도의 친구입니다. ZFS가 1Tb의 사용 가능한 디스크 공간 당 1Gb 램을 권장하는 경우 1Tb의 사용 가능한 디스크 공간 당 32Gb 램 미만의 중복 제거를 사용하려고하면 문제가됩니다. 이는 1Tb 미러의 경우 32Gb 램이없는 경우 램 부족으로 인해 시스템을 정지시키는 메모리 폭탄 조건이 조만간 발생할 수 있음을 의미합니다. 거기에 있었지만 여전히 PTSD에서 회복 중입니다.
killermist

4
온라인 중복 제거 (즉, 모든 쓰기에 체크)와 과도한 RAM 요구 사항을 방지하기 위해 btrfs사용하는 배치 또는 오프라인 중복 제거 (당신이 / 도움이 필요하다고 할 때마다 실행) btrfs.wiki.kernel.org/index.php/Deduplication을
마르셀 Waldvogel을

3
7 년 후 업데이트 : 결국 ZFS로 이동하여 중복 제거를 시도했습니다. RAM 요구 사항이 실제로 매우 높았습니다. ZFS 스냅 샷의 교묘 한 사용은 내가 사용한 솔루션을 제공했습니다. (한 사용자의 음악 복사, 스냅 샷 및 복제, rsync --inplace변경된 블록 만 저장 하여 두 번째 사용자의 음악을 복제로 복사 )
Josh


5

중복 파일을 찾으려면 duff 를 사용할 수 있습니다 .

Duff는 주어진 파일 세트에서 중복을 빠르게 찾을 수있는 Unix 명령 줄 유틸리티입니다.

간단히 실행하십시오.

duff -r target-folder

를 automaticly 해당 파일에 대한 하드 링크를 만들려면의 출력을 구문 분석 할 필요가 푸딩을 함께 bash에 또는 다른 스크립트 언어.


정말 느리지 만 -rdfind.pauldreik.se/#g0.6
ndemou

5
aptitude show hardlink

설명 : 동일한 파일의 여러 복사본을 하드 링크로 연결 하드 링크는 같은 파일의 여러 복사본을 감지하여 하드 링크로 대체하는 도구입니다.

아이디어는 http://code.google.com/p/hardlinkpy/ 에서 가져 왔지만 코드는 처음부터 작성되었으며 MIT 라이센스에 따라 라이센스가 부여되었습니다. 홈페이지 : http://jak-linux.org/projects/hardlink/


여기서 언급 한 유일한 프로그램은 마스킹 해제 및 하드 링크 지원없이 젠투에서 사용할 수 있습니다. 감사합니다!
Jorrit Schippers

4

여기에 언급 된 Linux 용 많은 하드 링크 도구를 사용했습니다. 나도 우분투에서 ext4 fs에 붙어 있으며 하드 / 소프트 링크에 cp -l-s 를 사용하고 있습니다. 그러나 최근 cp 매뉴얼 페이지 에서 경량 사본 을 발견 했는데, 한쪽이 수정 될 때까지 중복 디스크 공간을 절약 할 수 있습니다 .

   --reflink[=WHEN]
          control clone/CoW copies. See below

       When  --reflink[=always]  is specified, perform a lightweight copy, where the 
data blocks are copied only when modified.  If this is not possible the
       copy fails, or if --reflink=auto is specified, fall back to a standard copy.

나는 cp항상 --reflink=auto매개 변수 를 항상 포함하도록 별칭을 업데이트 할 것이라고 생각합니다
Marcos

1
ext4는 실제로 지원 --reflink합니까?

7
이것은 btrfs 및 OCFS2에서 지원됩니다. 쓰기시 복사 파일 시스템에서만 가능하며, ext4는 그렇지 않습니다. btrfs가 실제로 형성되고 있습니다. 나는 reflink와 스냅 샷 때문에 그것을 사용하는 것을 좋아합니다. 큰 파일 트리에서 대량 작업을하는 것이 덜 무섭습니다.
clacke

3

파일 이름을 먼저 확인하면 속도가 빨라질 것 같습니다. 두 파일에 동일한 파일 이름이 없으면 많은 경우에 파일이 중복 된 것으로 간주하지 않습니다. 가장 빠른 방법은 순서대로 비교하는 것 같습니다.

  • 파일 이름
  • 크기
  • md5 체크섬
  • 바이트 내용

어떤 방법을 사용합니까? 봐 duff, fdupes, rmlint, fslint, 등

다음 방법은 commandlinefu.com 에서 최고 투표되었습니다 . 중복 파일 찾기 (먼저 크기를 기준으로 한 다음 MD5 해시)

파일 이름 비교를 첫 번째 단계로 추가하고 크기를 두 번째 단계로 추가 할 수 있습니까?

find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | \
  xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | \
  sort | uniq -w32 --all-repeated=separate

3
내가 사용했습니다 duff, fdupes그리고 rmlint, 강하게 보는 독자를 추천 이들의 세 번째 . 훌륭한 옵션 세트 (및 문서)가 있습니다. 이를 통해 다른 도구와 함께 사용해야하는 많은 후 처리 작업을 피할 수있었습니다.
dubiousjim

3
내 연습에서 파일 이름은 가장 신뢰할만한 요소이며 중복 제거를 시도하는 모든 노력에서 파일 이름을 완전히 제거했습니다. install.sh활성 시스템에서 몇 개의 파일을 찾을 수 있습니까? 파일을 저장하고 이름이 충돌 한 횟수를 셀 수없이 셀 수 있습니다. 뒤집기 : 다른 날에 다른 소스에서 무언가를 다운로드 한 횟수가 다른 이름을 가진 동일한 파일이라는 것을 알지 못합니다. (또한 타임 스탬프 안정성을 제거합니다.) 1 : 크기, 2 : 다이제스트, 3 : 바이트 내용.
집시 Spellweaver

@GypsySpellweaver : (1) 개인적인 사용 사례에 따라 다릅니다. 동의하지 않습니까? 필자의 경우 이름과 내용이 같은 파일이 다른 복원 폴더에 존재하는 여러 백업에서 여러 복원이 있습니다. (2) 귀하의 의견은 파일 이름 비교한다고 가정 합니다 . 다른 검사를 제거 할 것을 제안하지 않았습니다.
johny 왜

2

저는 Perl의 팬이 아니기 때문에 bash 버전이 있습니다.

#!/bin/bash

DIR="/path/to/big/files"

find $DIR -type f -exec md5sum {} \; | sort > /tmp/sums-sorted.txt

OLDSUM=""
IFS=$'\n'
for i in `cat /tmp/sums-sorted.txt`; do
 NEWSUM=`echo "$i" | sed 's/ .*//'`
 NEWFILE=`echo "$i" | sed 's/^[^ ]* *//'`
 if [ "$OLDSUM" == "$NEWSUM" ]; then
  echo ln -f "$OLDFILE" "$NEWFILE"
 else
  OLDSUM="$NEWSUM"
  OLDFILE="$NEWFILE"
 fi
done

체크섬이 같은 모든 파일 (큰 파일이든 작은 파일이든 이미 하드 링크 된 파일인지)을 찾아서 서로 하드 링크합니다.

이는 추가 찾기 플래그 (예 : 크기)와 파일 캐시 (매번 체크섬을 다시 실행할 필요가 없음)를 사용하여 반복 실행에 크게 최적화 될 수 있습니다. 더 똑똑하고 더 긴 버전에 관심이있는 사람은 게시 할 수 있습니다.

참고 : 앞에서 언급 한 것처럼 파일을 수정하거나 파일 시스템간에 이동할 필요가없는 한 하드 링크가 작동합니다.


스크립트를 변경하여 하드 링크 대신 중복 파일을 삭제하고 CSV 파일에 삭제 된 파일-> 줄이 그어진 파일을 추가합니다. . ???
MR.GEWA

확실한. 하드 링크 줄 : echo ln -f "$ OLDFILE" "$ NEWFILE"중복 파일을 하드 링크로 바꾸면, 대신 $ NEWFILE을 변경할 수 있습니다.
seren

어떻게 다음 줄에 어떻게 든 텍스트 파일에 $ OLDFILE-> NEWFILE ???
MR.GEWA

아 맞아 예, 다음과 같이 rm 뒤에 줄을 추가하십시오. echo "$ NEWFILE">> /var/log/deleted_duplicate_files.log
seren

2
바퀴를 재발견하지 마십시오. rdfind기본 속도로 작동하고 설치 brew install rdfind또는 apt-get install rdfind설치 만하면 되는보다 성숙한 솔루션이 있습니다 .
oligofren

1

나는 당신이 말하는 것과 비슷한 것을하는 Perl 스크립트를 만들었습니다.

http://pastebin.com/U7mFHZU7

기본적으로 디렉토리를 통과하여 파일의 SHA1sum을 계산하고 해시하고 일치시키는 링크를 만듭니다. 많은 경우에 편리합니다.


2
CPAN에 업로드하지 않는 이유는 무엇입니까? App :: relink 또는
xenoterracide

2
@ xenoterracide : 이미 존재하는 모든 유사하고 성숙한 솔루션으로 인해. 다른 답변, 특히 rdfind를 참조하십시오.
oligofren

1
@oligofren 더 나은 솔루션이 있는지 의심하지 않습니다. TMTOWTDI 같아요.
amphetamachine 2016 년



1

jdupes 코멘트에서 언급되었지만 대부분의 배포판에서 사용 가능하고 꽤 빠르게 실행되기 때문에 자체 답변이 필요합니다 (약 1 분 안에 98 % 전체 158GB 파티션 (SSD 드라이브) 2.7GB를 해제했습니다).

jdupes -rL /foo/bar

0

하드 링크를 수행 할 경우 해당 파일의 권한에주의하십시오. 통지, 소유자, 그룹, 모드, 확장 된 속성, 시간 및 ACL (사용하는 경우)은 INODE에 저장됩니다. 파일 이름은 디렉토리 구조에 저장되고 다른 이름은 INODE 속성을 나타 내기 때문에 다릅니다. 이로 인해 동일한 inode에 연결된 모든 파일 이름은 동일한 액세스 권한을 갖습니다. 모든 사용자가 다른 사용자에게 파일을 손상시킬 수 있으므로 해당 파일을 수정하지 않아야합니다. 간단하다. 다른 사용자가 같은 이름으로 다른 파일을 넣는 것으로 충분합니다. 그런 다음 Inode 번호가 저장되고 모든 하드 링크 이름에 대해 원본 파일 내용이 삭제 (대체)됩니다.

더 좋은 방법은 파일 시스템 계층에서 중복 제거입니다. BTRFS (최종 인기), OCFS 등을 사용할 수 있습니다. https://en.wikipedia.org/wiki/Comparison_of_file_systems 페이지의 특징 및 열 데이터 중복 제거 표를 참조하십시오 . 당신은 그것을 클릭하고 정렬 할 수 있습니다 :)

특히 ZFS 파일 시스템을 살펴보십시오. FUSE로 사용할 수 있지만 이런 방식으로 속도가 느립니다. 기본 지원이 필요하면 http://zfsonlinux.org/ 페이지를보십시오 . 그런 다음 커널을 패치하고 다음으로 관리를 위해 zfs 도구를 설치해야합니다. 리눅스가 드라이버로 지원하지 않는 이유를 이해하지 못합니다. 다른 많은 운영 체제 / 커널에 적합합니다.

파일 시스템은 두 가지 방법으로 중복 제거, 파일 중복 제거 또는 블록을 지원합니다. ZFS는 블록을 지원합니다. 즉, 동일한 파일에서 반복되는 동일한 내용을 중복 제거 할 수 있습니다. 다른 방법은 데이터가 중복 제거되는 시간이며 온라인 (zfs) 또는 오프라인 (btrfs) 일 수 있습니다.

중복 제거는 RAM을 소비합니다. 이것이 FUSE로 마운트 된 ZFS 볼륨에 파일을 쓰면 성능이 크게 저하되는 이유입니다. 이것은 설명서에 설명되어 있습니다. 그러나 온라인에서 볼륨에 대한 중복 제거를 설정 / 해제 할 수 있습니다. 데이터 중복 제거가 필요한 경우 중복 제거를 설정하고 일부 파일을 임시 파일로 다시 작성한 후 대체하십시오. 이 후 중복 제거를 해제하고 전체 성능을 복원 할 수 있습니다. 물론 캐시 디스크를 스토리지에 추가 할 수 있습니다. 이것은 매우 빠른 회전 디스크 또는 SSD 디스크 일 수 있습니다. 물론 이것은 매우 작은 디스크 일 수 있습니다. 실제 작업에서 이것은 RAM을 대체합니다 :)

리눅스에서는 파일 시스템 관리, 스냅 샷 생성 등을 할 때 모든 것이 제대로 작동하지는 않지만 ZFS를주의해야하지만 구성을 수행하고 변경하지 않으면 모든 것이 올바르게 작동합니다. 다른 방법으로, 당신은 리눅스를 opensolaris로 바꿔야합니다. 그것은 기본적으로 ZFS를 지원합니다 :) ZFS의 장점은 LVM과 비슷한 파일 시스템과 볼륨 관리자로 작동한다는 것입니다. ZFS를 사용할 때는 필요하지 않습니다. 자세한 내용은 설명서를 참조하십시오.

ZFS와 BTRFS의 차이점에 유의하십시오. ZFS는 불행히도 Solaris와 OpenSolaris (불행히 oracle에 의해 교살 됨)에서만 구식이되고 성숙해졌습니다. BTRFS는 더 젊지 만, 마지막에는 아주 잘 지원됩니다. 나는 새로운 커널을 추천한다. ZFS에는 온라인 중복 제거 기능이있어 쓰기 속도가 느려집니다. 모두 온라인으로 계산되기 때문입니다. BTRFS는 오프라인 중복 제거를 지원합니다. 그러면 성능이 절약되지만 호스트가 수행 할 작업이 없으면 중복 제거를 위해 정기적으로 도구를 실행합니다. 그리고 BTRFS는 기본적으로 리눅스에서 만들어집니다. 어쩌면 이것이 더 나은 FS입니다 :)


1
오프라인 (또는 배치 ) 중복 제거 접근 방식 btrfs이 마음에 듭니다 . 합니다 (포함 옵션의 우수 토론 cp --reflink여기에 옵션) : btrfs.wiki.kernel.org/index.php/Deduplication
마르셀 Waldvogel

ZFS는 Solaris 또는 OpenSolaris 만 아닙니다. FreeBSD에서 기본적으로 지원됩니다. 또한 Linux의 ZFS 장치 드라이버 기반입니다. 퓨즈의 ZFS는 다른 것입니다.
KJ Seefried

0

하드 링크는 최선의 아이디어가 아닐 수도 있습니다. 한 사용자가 파일을 변경하면 둘 다에 영향을줍니다. 그러나 하드 링크를 삭제해도 두 파일이 모두 삭제되지는 않습니다. 또한 하드 링크가 동일한 파일의 여러 복사본과 동일한 양의 공간 (OS가 아닌 하드 디스크의 공간)을 차지하는지 확실하지 않습니다. Windows에 따르면 (Link Shell Extension 사용) 그렇게합니다. 물론, 그것은 유닉스가 아닌 Windows입니다 ...

내 해결책은 숨겨진 폴더에 "공통"파일을 만들고 실제 복제본을 심볼릭 링크로 바꾸는 것입니다. 그런 다음 심볼릭 링크는 메타 데이터 또는 두 개의 "파일"만 기록하는 대체 파일 스트림에 포함됩니다 한 사람이 파일 이름을 변경하거나 사용자 지정 앨범 아트 또는 이와 유사한 것을 추가하려는 경우와 같이 서로 다릅니다. 심지어 동일한 게임이나 소프트웨어의 여러 버전을 설치하고 아주 작은 차이로 독립적으로 테스트하는 것과 같이 데이터베이스 응용 프로그램 외부에서도 유용 할 수 있습니다.


0

가장 쉬운 방법은 특별한 프로그램을 사용하는 것입니다.

dupeGuru 기본 설정 스크린 샷

같은 문서는 말한다

삭제 옵션

이 옵션은 중복 삭제 방법에 영향을줍니다. 대부분의 경우, 그것들을 활성화 할 필요는 없습니다.

삭제 된 파일 링크 :

삭제 된 파일은 참조 파일에 대한 링크로 대체됩니다. 심볼릭 링크 또는 하드 링크로 대체 할 수 있습니다. ... 심볼릭 링크는 파일 경로의 바로 가기입니다. 원본 파일이 삭제되거나 이동되면 링크가 끊어집니다. 하드 링크는 파일 자체에 대한 링크입니다. 이 링크는 "실제"파일만큼 좋습니다. 파일에 대한 모든 하드 링크가 삭제 된 경우에만 파일 자체가 삭제됩니다.

OSX 및 Linux에서이 기능은 완전히 지원되지만 Windows에서는 약간 복잡합니다. Windows XP는 지원하지 않지만 Vista 이상에서는 지원합니다. 그러나 기능이 작동하려면 dupeGuru가 관리 권한으로 실행되어야합니다.

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