![如何使用 fdupes 删除重复文件?](https://linux22.com/image/822800/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20fdupes%20%E5%88%A0%E9%99%A4%E9%87%8D%E5%A4%8D%E6%96%87%E4%BB%B6%EF%BC%9F.png)
当我运行时,fdupes
它发现了超过 30,000 个重复文件。我需要保留一个文件并删除所有其他重复文件(因为其中一些是系统文件)。请给我一个命令或脚本来执行此操作,而无需对每一组重复文件都按“1 或 2 或全部”。
答案1
如果您想静默运行它,您可以这样做(我刚刚用它清除了在机架空间块存储上运行的 150 GB 的重复数据..£kerching!!)
fdupes -rdN dir/
r - recursive
d - preserver first file, delete other dupes
N - run silently (no prompt)
答案2
fdupes
具有丰富的 CLI:
fdupes -r ./stuff > dupes.txt
然后,删除重复项就像检查dupes.txt
和删除有问题的目录一样简单。fdupes
还可以提示您删除重复项。
fdupes -r /home/user > /home/user/duplicate.txt
命令的输出进入duplicate.txt
。
fdupes
将比较文件的大小和 MD5 哈希值来查找重复项。
检查fdupes
手册页了解详细使用信息。
答案3
我会使用这种更安全的方法:
创建脚本并将重复的文件移动到新文件夹。如果移动到原始文件夹之外的文件夹,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
答案4
我已经尝试了所有这些,diff、fdupes、rsync、rdfind shell脚本,毫无疑问语法毫无疑问,它击败了所有同类产品。它显示重复项,允许您检查它们并合并或删除。GUI 非常干净且易于使用。我使用的是 Ubuntu 20.04。