如何使用fdupes删除重复文件?
当我运行fdupes
它会找到超过30,000个重复文件。 我需要保留一个文件并删除所有其他重复项(因为其中一些是systemfiles)。 请给我一个命令或脚本来执行此操作,而不必为每组重复文件按“1或2或全部”。
如果你想静静地运行它,你可以这样做(我刚刚使用它来清除在机架空间块存储上运行的150 GB的欺骗行为。£kerching !!)
fdupes -rdN dir/ r - recursive d - preserver first file, delete other dupes N - run silently (no prompt)
fdupes
有一个丰富的CLI:
fdupes -r ./stuff > dupes.txt
然后,删除重复项就像检查dupes.txt
和删除有问题的目录一样简单。 fdupes
还可以提示您删除重复项。
fdupes -r /home/user > /home/user/duplicate.txt
命令输出为duplicate.txt
。
fdupes
将比较文件的大小和MD5哈希值以查找重复项。
有关详细的使用信息,请查看fdupes
联机帮助页 。
我已经使用了fslint和DupeGuru很长一段时间了。
- FSlint支持通过通配符和其他清理方法进行选择
- DupeGuru支持正则表达式
两者都可以处理> 10000个文件/文件夹
我会用这种更安全的方式:
创建脚本并将复制的文件移动到新文件夹。 如果移动到原始文件夹之外的文件夹,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