답변:
이것을 자동으로 실행하려면이 작업을 수행 할 수 있습니다 (랙 스페이스 블록 스토리지에서 실행되는 150GB의 듀피를 지우는 데 사용했습니다 .. £ kerching !!)
fdupes -rdN dir/
r - recursive
d - preserver first file, delete other dupes
N - run silently (no prompt)
for f in $(fdupes -f .); do gvfs-trash $f; done
fdupes -f . | xargs -rd '\n' -- gvfs-trash
공백과 특수 문자가 있거나 파일이 많은 파일 이름 이 있으면 더 좋습니다 .
fdupes
널 종료 레코드에 대한 옵션을 제공하지 않으므로 더 나은 옵션이 없습니다. for f in $(fdupes ...)
그래도 훨씬 낫습니다 . :-]
fdupes
풍부한 CLI가 있습니다.
fdupes -r ./stuff > dupes.txt
그런 다음 복제본을 dupes.txt
삭제하는 것은 문제가있는 디렉토리 를 확인 하고 삭제하는 것만 큼 쉽습니다 . fdupes
또한 진행하면서 복제본을 삭제하라는 메시지가 표시 될 수 있습니다.
fdupes -r /home/user > /home/user/duplicate.txt
명령의 출력은로 들어갑니다 duplicate.txt
.
fdupes
중복 파일을 찾기 위해 파일의 크기와 MD5 해시를 비교합니다.
자세한 사용법 정보 는 fdupes
맨 페이지 를 확인하십시오 .
나는 더 안전한 방법을 사용할 것입니다 :
스크립트를 작성하고 복제 된 파일을 새 폴더로 이동하십시오. 원래 폴더 외부의 폴더로 이동하면 fdupes는 두 번째 스캔에서 복제 된 파일을보고하지 않으므로 삭제하는 것이 더 안전합니다.
#!/bin/bash
# Save default separator definitions
oIFS=$IFS
# define new line as a separator, filenames can have spaces
IFS=$'\n';
# For each file (f) listed as duplicated by fdupes, recursively
for f in `fdupes -r -f .`
do
# Log the files I'm moving
echo "Moving $f to folder Duplicates" >> ~/log.txt
# Move the duplicated file, keeping the original in the original folder
mv $f Duplicates/
done
# restore default separator definitions
IFS=$oIFS