一个懒癌患者的自言自语



linux 查找并删除重复文件

    很多时候我们都会将重要的文件信息进行备份,以备在文件丢失或者误操作后进行恢复,但是如果我们备份的地方比较多而且时间长久以后磁盘就会被大量的重复文件占满,想清理又怕误删重要文件,一个一个对比又太浪费时间,在linux上就可以接着一些命令很轻松的完成重复文件删除工作,比如下面两个:

  1. Rdfind
  2. Fdupes

先说 Rdfind 的使用方式:

1.安装

Rdfind 存在于 AUR 中。因此,在基于 Arch 的系统中,你可以像下面一样使用任一如 YayAUR 程序助手安装它。

在 Debian、Ubuntu、Linux Mint 上:

在 Fedora 上:

在 RHEL、CentOS 上:

2.使用

 最简单的方式 rdfind + 要查找的文件夹,比如:

rdfind ~/Downloads

该命令会扫描  Downloads 下的所有文件,并将结果保存在当前目录的 <span style="color: rgb(46, 46, 46); font-family: Monaco, Consolas, " andale="" mono",="" "dejavu="" sans="" monospace;="" font-size:="" 15px;"="">results.txt 文件中,你可以在该文件里面查看重复文件的信息,如果查找到有重复文件,我们可以使用硬链接或软连接的方式代替它们,硬链接命令:

rdfind -makehardlinks true ~/Downloads

软连接命令:

rdfind -makesymlinks true ~/Downloads

这样就能保持所有重复文件位置不变,但是只会存在一份了,有时候目录中有一些空文件,也许我们想忽略它们,可以带上 -ignoreempty 选项使用如下命令:

rdfind -ignoreempty true ~/Downloads

如果我们确定不在需要这些文件,想直接删除而不是使用建立软硬链接的方式替代位置,可以使用如下命令:

rdfind -deleteduplicates true ~/Downloads 

如果想将空文件一起删除使用如下命令:

rdfind -deleteduplicates true -ignoreempty false ~/Downloads 

至此,所有重复文件都删除了,更多使用方式可以参考手册和帮助:

rdfind --help
man rdfind 

现在来看看另一个命令 Fdupes 的使用方式:

1.安装

在 Arch Linux 和它的变种如 Antergos、Manjaro Linux 上,如下使用 Pacman 安装它。

在 Debian、Ubuntu、Linux Mint 上:

在 Fedora 上:

在 RHEL、CentOS 上:

2.使用

一样先说最简单的方式 fdupes + 要查找的文件夹:

fdupes ~/Downloads

该命令会在终端直接输出重复文件的信息,但是并没有显示子目录的信息,想要一起显示使用如下命令:

 fdupes -r ~/Downloads

现在该目录下包括所有子目录的重复文件都会显示到终端,

fdupes 命令还支持多目录查找,比如像下面这样:

 fdupes ~/Downloads ~/Documents

指定某个目录递归查找:

fdupes ~/Downloads -r ~/Documents

Documents 文件夹将被递归查找,还可以在查找时排除空白文件和隐藏文件,排除空白文件:

fdupes -n ~/Downloads

 排除隐藏文件:

fdupes -A ~/Downloads

删除所有重复文件:

fdupes -d ~/Downloads 

该命令会提示你保留还是删除所有其他重复文件,输入任一号码保留相应的文件,并删除剩下的文件。当使用这个选项的时候需要更加注意。如果不小心,你可能会删除原文件,输出提示样例:

 
 
 
 
 
1
2
3
4
[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf
[2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf
 
Set 1 of 1, preserve files [1 - 2, all]:

还可以使用如下命令保留每个重复文件集合的第一个文件,且无提示的删除其他文件: //不推荐

fdupes -dN ~/Downloads

如果我们希望当遇到重复文件时才删除它们,可以使用下面的命令: //推荐

fdupes -I ~/Downloads

更多用法和帮助请参考:

fdupes --help
man fdupes 

About ME

about me

kevin

一个在it道路上蹒跚学步的人

心有多大,舞台就有多大,一直奔跑在自己的路上!

Contact ME