如果您有从互联网下载各种内容的习惯,组织您的主目录甚至系统可能会特别困难。
通常,您可能会发现已下载相同的mp3,pdf,epub(以及所有其他文件扩展名)并将其复制到不同的目录中。 这可能会导致您的目录被各种无用的重复内容弄得乱七八糟。
在本教程中,您将学习如何使用rdfind和fdupes命令行工具在Linux中查找和删除重复文件。
注意事项 - 请务必小心您在系统上删除的内容,因为这可能会导致不必要的数据丢失。 如果您使用的是新工具,请首先在测试目录中尝试删除文件不会出现问题。
Rdfind - 在Linux中查找重复文件
Rdfind来自冗余数据查找。 它是一个免费工具,用于在多个目录中或多个目录中查找重复文件。 它使用校验和并根据文件查找重复项不仅包含名称。
Rdfind使用算法对文件进行分类,并检测哪些副本是原始文件,并将其余部分视为重复文件。 排名规则是:
- 如果在扫描早于B的输入参数时找到A ,则A的排名更高。
- 如果在低于B的深度发现A ,则A的排名更高。
- 如果A早于B发现,则A排名较高。
最后一条规则特别适用于在同一目录中找到两个文件的情况。
要在Linux中安装rdfind ,请根据 Linux发行版使用以下命令。
$ sudo apt-get install rdfind [On Debian/Ubuntu] $ sudo yum install epel-release && $ sudo yum install rdfind [On CentOS/RHEL] $ sudo dnf install rdfind [On Fedora 22+]
要在目录上运行rdfind ,只需键入rdfind和目标目录即可。 这是一个例子:
$ rdfind /home/user
在Linux中查找重复文件
正如您所看到的, rdfind会将结果保存在名为results.txt的文件中,该文件位于运行程序的同一目录中。 该文件包含rdfind找到的所有重复文件。 如果需要,您可以查看该文件并手动删除重复的文件。
您可以做的另一件事是使用-dryrun
选项,该选项将提供重复列表而不执行任何操作:
$ rdfind -dryrun true /home/user
找到重复项后,您可以选择使用硬链接替换它们。
$ rdfind -makehardlinks true /home/user
如果你想删除重复项,你可以运行。
$ rdfind -deleteduplicates true /home/user
要检查rdfind的其他有用选项,您可以使用rdfind手册。
$ man rdfind
Fdupes - 在Linux中扫描重复文件
Fdupes是另一个程序,允许您识别系统上的重复文件。 它是免费的开源软件,用C语言编写。它使用以下方法确定重复文件:
- 比较部分md5sum签名
- 比较完整的md5sum签名
- 逐字节比较验证
就像rdfind一样,它有类似的选择:
- 递归搜索
- 排除空文件
- 显示重复文件的大小
- 立即删除重复项
- 排除具有不同所有者的文件
Fdupes语法类似于rdfind 。 只需键入命令,然后键入要扫描的目录。
$ fdupes <dir>
要以递归方式搜索文件,您必须像这样指定-r
选项。
$ fdupes -r <dir>
您还可以指定多个目录并指定要递归搜索的目录 。
$ fdupes <dir1> -r <dir2>
要让fdupes计算重复文件的大小,请使用-S
选项。
$ fdupes -S <dir>
要收集有关找到的文件的摘要信息,请使用-m
选项。
$ fdupes -m <dir>
在Linux中扫描重复文件
最后,如果要删除所有重复项,请使用-d
选项。
$ fdupes -d <dir>
Fdupes会询问要删除哪个找到的文件。 您需要输入文件编号:
删除Linux中的重复文件
绝对不推荐的解决方案是使用-N
选项,这将导致仅保留第一个文件。
$ fdupes -dN <dir>
要获取与fdupes一起使用的可用选项列表,请通过运行查看帮助页面。
$ fdupes -help
结论
Rdfind和fdupes都是在Linux系统上查找重复文件的非常有用的工具,但在删除这些文件时应该非常小心。
如果您不确定是否需要文件,最好在删除文件之前创建该文件的备份并记住其目录。 如果您有任何问题或意见,请在下面的评论部分提交。