답변1
CLI를 사용할 준비가 되면 다음 명령이 작동할 것입니다.
diff --brief -r backup/ documents/
그러면 각 폴더에 고유한 파일이 표시됩니다. 원하는 경우 다음을 사용하여 파일 이름 대소문자를 무시할 수도 있습니다.--ignore-file-name-case
예로서:
ron@ron:~/test$ ls backup/
file1 file2 file3 file4 file5
ron@ron:~/test$ ls documents/
file4 file5 file6 file7 file8
ron@ron:~/test$ diff backup/ documents/
Only in backup/: file1
Only in backup/: file2
Only in backup/: file3
Only in documents/: file6
Only in documents/: file7
Only in documents/: file8
ron@ron:~/test$ diff backup/ documents/ | grep "Only in backup"
Only in backup/: file1
Only in backup/: file2
Only in backup/: file3
또한, 파일이 다른 경우에만 보고하고 실제 '차이'는 보고하지 않으려면 다음 --brief
과 같이 옵션을 사용할 수 있습니다.
ron@ron:~/test$ cat backup/file5
one
ron@ron:~/test$ cat documents/file5
ron@ron:~/test$ diff --brief backup/ documents/
Only in backup/: file1
Only in backup/: file2
Only in backup/: file3
Files backup/file5 and documents/file5 differ
Only in documents/: file6
Only in documents/: file7
Only in documents/: file8
meld
동일한 작업을 수행할 수 있는 여러 가지 시각적 비교 도구가 있습니다 . meld
다음 방법으로 유니버스 저장소에서 설치할 수 있습니다 .
sudo apt-get install meld
"디렉터리 비교" 옵션을 사용하세요. 비교하고 싶은 폴더를 선택하세요. 선택한 후에는 나란히 비교할 수 있습니다.
fdupes
는 중복 파일을 찾는 데 탁월한 프로그램이지만 귀하가 찾고 있는 중복되지 않은 파일을 나열하지는 않습니다. 그러나 및 fdupes
의 조합을 사용하여 출력 에 없는 파일을 나열할 수 있습니다 .find
grep
다음 예에서는 에 고유한 파일을 나열합니다 backup
.
ron@ron:~$ tree backup/ documents/
backup/
├── crontab
├── dir1
│ └── du.txt
├── lo.txt
├── ls.txt
├── lu.txt
└── notes.txt
documents/
├── du.txt
├── lo-renamed.txt
├── ls.txt
└── lu.txt
1 directory, 10 files
ron@ron:~$ fdupes -r backup/ documents/ > dup.txt
ron@ron:~$ find backup/ -type f | grep -Fxvf dup.txt
backup/crontab
backup/notes.txt
답변2
매우 큰 파일이 많이 있는 경우에도 동일한 문제가 있었고 중복에 대한 솔루션은 많지만 반전 검색에 대한 솔루션은 많지 않으며 데이터 양이 많기 때문에 콘텐츠 차이점을 검색하고 싶지도 않았습니다.
그래서 저는 "격리된 파일"을 검색하기 위해 이 Python 스크립트를 작성했습니다.
isolated-files.py --source folder1 --target folder2
이렇게 하면 폴더1에 없는(재귀적으로) 폴더2 내의 모든 파일이 (재귀적으로) 표시됩니다. SSH 연결 및 여러 폴더에서도 사용할 수 있습니다.
답변3
나는 오래된 백업을 다른 이름으로 다른 디렉터리에 보관된 수천 개의 파일과 병합하는 가장 좋은 작업 흐름은 다음을 사용하는 것이라고 생각했습니다.dupeGuru결국. 그것은 많이 닮았다중복탭에서FSlint, 그러나 소스를 다음과 같이 추가하는 중요한 기능이 있습니다.'참조'.
- 대상 디렉토리(예
~/Documents
: )를참조.- ㅏ참조읽기 전용이므로 파일이 제거되지 않습니다.
- 백업 디렉터리를 다음과 같이 추가하세요.정상.
- 중복된 항목을 찾아보세요. 백업에서 발견된 모든 중복 항목을 제거합니다.
- 백업 디렉터리에는 고유한 파일만 남습니다. 사용FreeFileSync또는융합이를 병합하거나 수동으로 병합합니다.
이전 백업 디렉터리가 여러 개 있는 경우 먼저 이와 같은 최신 백업 디렉터리를 병합한 다음 이 백업 디렉터리를참조기본 문서 디렉터리에 병합하기 전에 이전 백업의 중복 항목을 정리합니다. 이는많은백업에서 병합하는 대신 휴지통으로 옮긴 고유 파일을 제거할 필요가 없는 작업입니다.
프로세스에서 이전 백업을 모두 삭제한 후 새로 백업하는 것을 잊지 마세요. :)
답변4
jdupes
이에 대한 두 가지 유용한 옵션이 있습니다: -I --isolate
및 -u --print-unique
.
예를 들어, 디렉토리에 있는 고유한 파일만 나열하려면 다음을 수행하십시오 backup
.
jdupes -Iru Documents backup |grep '^backup