Linux fdupes:删除目录中的重复文件
如何在给定的目录集中找到重复的文件并使用Shell脚本或者命令行选项将其删除?如何清除Linux操作系统上~/foo和/u2/foo目录中存储的重复文件?如何在基于Linux的服务器上删除重复文件?您需要使用一个名为fdupes的工具。它将在给定的路径中搜索重复的文件。通过比较文件大小和MD5签名,然后进行逐字节比较,可以找到此类文件。 fdupes是消除重复文件的好工具。
另一种选择是使用一种称为的工具来查找和修复文件存储中的常见错误,例如重复文件。
在Linux上安装fdupes
在Debian/Ubuntu Linux上执行以下apt-get命令:
# apt-get install fdupes
在Redhat/RHEL/Fedota/CentOS Linux下执行以下yum命令,输入(运行以下yum命令之前打开rpmforge repo):
# yum install fdupes
如何使用fdupes命令?
要在/etc /目录中找到重复的文件,请执行:
# fdupes /etc
输出示例:
/etc/vimrc /etc/virc
如何删除不需要的文件?
您可以强制fdupes提示您保存文件,删除所有其他文件(请谨慎使用,否则可能会丢失数据):
# fdupes -d /etc
输出示例:
[1] /etc/vimrc [2] /etc/virc Set 1 of 1, preserve files [1 - 2, all]: 1 [+] /etc/vimrc [-] /etc/virc
如何递归搜索目录?
您可以递归搜索每个目录,并在-r选项中遇到以下子目录后执行:
# fdupes -r /dir1
如何在两个目录中找到重复对象?
执行命令,如下所示:
# fdupes /dir1 /dir2
或者
# fdupes -r /etc /data/etc /nas95/etc
如何查看重复文件的大小?
使用-S选项执行以下命令:
# fdupes -S /etc
输出示例:
1533 bytes each: /etc/vimrc /etc/virc
使用fslint删除重复的文件
fslint是用于查找文件系统各种问题的命令,包括重复文件和有问题的文件名等。
这是台式机用户的推荐工具。
要安装,请在Debian/Ubuntu Linux上执行以下内容:
$ sudo apt-get install fslint
除了GUI之外,还可以使用单独的命令行工具来访问它们,可以在标准安装中将/usr/share/fslint/fslint目录更改为$/usr/share/fslint/fslint目录,或者将其添加到$PATH中。
该目录中的每个命令都有一个--help选项,进一步详细说明了其参数:
$ ls /usr/share/fslint/fslint/
输出示例:
findbl findid findns findsn findu8 findup fstool zipdir finded findnl findrs findtf findul fslint supprt
其中:
findup
查找DUPlicate文件findnl
查找名称Lint(文件名问题)findu8
查找无效utf8编码的文件名findbl
查找错误链接(符号链接的各种问题)findsn
查找相同名称(名称冲突的问题)finded
找到空目录findid
查找具有无效用户ID的文件findns
查找未剥离的可执行文件findrs
在文件中找到冗余空格findtf
查找临时文件findul
查找可能未使用的库zipdir
回收ext2目录条目中浪费的空间
例子
要在当前目录及以下目录中搜索重复项,请执行:
## Set path first ## export PATH=$PATH:/usr/share/fslint/fslint/ findup findup .
要在所有/nas01/theitroad.local/projects源目录中搜索重复项并使用硬链接进行合并,请执行:
findup -m /nas01/theitroad.local/projects*
在系统中搜索大小超过20K的重复文件
sudo findup / -size +20k
仅搜索我的文件(我拥有并在主目录中)
findup ~ -user $(id -u)
要在系统中搜索属于tom用户的重复文件:
sudo findup / -user $(id -u tom)
fslint-gui工具
fslint-gui是单个fslint命令行工具的GUI包装:
fslint-gui &