fdupes  - 在Linux中查找和删除重复文件的Comamndline工具

对于大多数计算机用户来说,找到和替换重复文件是常见的要求。 查找和删除重复文件是一项繁琐的工作,需要时间和耐心。 如果你的机器是由GNU / Linux的,多亏供电,以“fdupes”工具查找重复文件,可以很容易的。

Fdupes - 在Linux中查找和删除重复的文件

什么是fdupes?

Fdupes是一个Linux工具阿德里安-洛佩斯在MIT许可发行的C编程语言编写的。 应用程序能够找到给定的目录和子目录集中的重复文件。 Fdupes通过比较文件的MD5签名,然后进行字节到字节的比较来识别重复。 Fdupes可以传递许多选项来列出,删除和替换硬链接到重复的文件。

比较按顺序开始:

大小比较 > 部分MD5签名比较 > 全MD5签名比较 > 字节到字节的比较

在Linux上安装fdupes

下面就基于Debian的系统,如UbuntuLinux Mint的命令fdupes的最新版本(版本fdupes 1.51)那么容易,因为正在运行的安装。

$ sudo apt-get install fdupes

CentOS / RHELFedora的系统,你需要打开EPEL软件库安装fdupes包。

# yum install fdupes
# dnf install fdupes    [On Fedora 22 onwards]

注意 :默认包管理的yum是由DNFFedora 22日起取代...

如何使用fdupes命令?

1.出于演示的目的,让我们一个一个目录下创建几个重复的文件(比如说youcl)简称为:

$ mkdir /home/"$USER"/Desktop/youcl && cd /home/"$USER"/Desktop/youcl && for i in {1..15}; do echo "I Love youcl. youcl is a very nice community of Linux Users." > youcl${i}.txt ; done

上面的命令运行后,让我们来验证使用创建文件的副本或者不ls命令

$ ls -l
total 60
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl10.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl11.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl12.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl13.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl14.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl15.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl1.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl2.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl3.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl4.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl5.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl6.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl7.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl8.txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl9.txt

上面的脚本创建15个文件,即youcl1.txt,youcl2.txt ... youcl15.txt和每一个文件包含相同的数据,即,

"I Love youcl. youcl is a very nice community of Linux Users."

2.现在搜索文件夹内youcl重复的文件。

$ fdupes /home/$USER/Desktop/youcl 
/home/youcl/Desktop/youcl/youcl13.txt
/home/youcl/Desktop/youcl/youcl8.txt
/home/youcl/Desktop/youcl/youcl11.txt
/home/youcl/Desktop/youcl/youcl3.txt
/home/youcl/Desktop/youcl/youcl4.txt
/home/youcl/Desktop/youcl/youcl6.txt
/home/youcl/Desktop/youcl/youcl7.txt
/home/youcl/Desktop/youcl/youcl9.txt
/home/youcl/Desktop/youcl/youcl10.txt
/home/youcl/Desktop/youcl/youcl2.txt
/home/youcl/Desktop/youcl/youcl5.txt
/home/youcl/Desktop/youcl/youcl14.txt
/home/youcl/Desktop/youcl/youcl1.txt
/home/youcl/Desktop/youcl/youcl15.txt
/home/youcl/Desktop/youcl/youcl12.txt

3.搜索重复递归每个目录下包括它的使用-r选项子目录。

它将递归搜索所有文件和文件夹,这取决于文件和文件夹的数量,它需要一些时间来扫描重复。 在这个时候,你将被呈现在终端的总进展,像这样。

$ fdupes -r /home
Progress [37780/54747] 69%

4.请参见使用-s选项文件夹中找到重复的大小。

$ fdupes -S /home/$USER/Desktop/youcl
65 bytes each:                          
/home/youcl/Desktop/youcl/youcl13.txt
/home/youcl/Desktop/youcl/youcl8.txt
/home/youcl/Desktop/youcl/youcl11.txt
/home/youcl/Desktop/youcl/youcl3.txt
/home/youcl/Desktop/youcl/youcl4.txt
/home/youcl/Desktop/youcl/youcl6.txt
/home/youcl/Desktop/youcl/youcl7.txt
/home/youcl/Desktop/youcl/youcl9.txt
/home/youcl/Desktop/youcl/youcl10.txt
/home/youcl/Desktop/youcl/youcl2.txt
/home/youcl/Desktop/youcl/youcl5.txt
/home/youcl/Desktop/youcl/youcl14.txt
/home/youcl/Desktop/youcl/youcl1.txt
/home/youcl/Desktop/youcl/youcl15.txt
/home/youcl/Desktop/youcl/youcl12.txt

5.您可以看到的范围内对使用-S-r选项的同时,由于遇到的每一个目录和子目录重复的文件大小:

$ fdupes -Sr /home/avi/Desktop/
65 bytes each:                          
/home/youcl/Desktop/youcl/youcl13.txt
/home/youcl/Desktop/youcl/youcl8.txt
/home/youcl/Desktop/youcl/youcl11.txt
/home/youcl/Desktop/youcl/youcl3.txt
/home/youcl/Desktop/youcl/youcl4.txt
/home/youcl/Desktop/youcl/youcl6.txt
/home/youcl/Desktop/youcl/youcl7.txt
/home/youcl/Desktop/youcl/youcl9.txt
/home/youcl/Desktop/youcl/youcl10.txt
/home/youcl/Desktop/youcl/youcl2.txt
/home/youcl/Desktop/youcl/youcl5.txt
/home/youcl/Desktop/youcl/youcl14.txt
/home/youcl/Desktop/youcl/youcl1.txt
/home/youcl/Desktop/youcl/youcl15.txt
/home/youcl/Desktop/youcl/youcl12.txt
107 bytes each:
/home/youcl/Desktop/resume_files/r-csc.html
/home/youcl/Desktop/resume_files/fc.html

6.除了一个文件夹中递归搜索或所有文件夹,您可以选择根据需要在两个文件夹或三个文件夹选择。 更何况,你可以使用选项-S和/或如果需要-r选项

$ fdupes /home/avi/Desktop/ /home/avi/Templates/

7.要删除重复的文件,同时保留一个副本,你可以使用选项“-d”。 在使用此选项时应格外小心,否则可能会导致丢失必要的文件/数据,并认为该过程是不可恢复的。

$ fdupes -d /home/$USER/Desktop/youcl
[1] /home/youcl/Desktop/youcl/youcl13.txt
[2] /home/youcl/Desktop/youcl/youcl8.txt
[3] /home/youcl/Desktop/youcl/youcl11.txt
[4] /home/youcl/Desktop/youcl/youcl3.txt
[5] /home/youcl/Desktop/youcl/youcl4.txt
[6] /home/youcl/Desktop/youcl/youcl6.txt
[7] /home/youcl/Desktop/youcl/youcl7.txt
[8] /home/youcl/Desktop/youcl/youcl9.txt
[9] /home/youcl/Desktop/youcl/youcl10.txt
[10] /home/youcl/Desktop/youcl/youcl2.txt
[11] /home/youcl/Desktop/youcl/youcl5.txt
[12] /home/youcl/Desktop/youcl/youcl14.txt
[13] /home/youcl/Desktop/youcl/youcl1.txt
[14] /home/youcl/Desktop/youcl/youcl15.txt
[15] /home/youcl/Desktop/youcl/youcl12.txt
Set 1 of 1, preserve files [1 - 15, all]: 

您可能会注意到,所有重复的列表都会列出,并提示您删除,一个或一个范围或一次全部。 您可以选择类似下面的范围删除特定范围的文件文件。

Set 1 of 1, preserve files [1 - 15, all]: 2-15
[-] /home/youcl/Desktop/youcl/youcl13.txt
[+] /home/youcl/Desktop/youcl/youcl8.txt
[-] /home/youcl/Desktop/youcl/youcl11.txt
[-] /home/youcl/Desktop/youcl/youcl3.txt
[-] /home/youcl/Desktop/youcl/youcl4.txt
[-] /home/youcl/Desktop/youcl/youcl6.txt
[-] /home/youcl/Desktop/youcl/youcl7.txt
[-] /home/youcl/Desktop/youcl/youcl9.txt
[-] /home/youcl/Desktop/youcl/youcl10.txt
[-] /home/youcl/Desktop/youcl/youcl2.txt
[-] /home/youcl/Desktop/youcl/youcl5.txt
[-] /home/youcl/Desktop/youcl/youcl14.txt
[-] /home/youcl/Desktop/youcl/youcl1.txt
[-] /home/youcl/Desktop/youcl/youcl15.txt
[-] /home/youcl/Desktop/youcl/youcl12.txt

8.从安全的角度,你可能会想打印“fdupes”以文件的输出,然后检查文本文件,以决定删除哪个文件。 这减少了获取您的文件意外删除的机会。 您可以:

$ fdupes -Sr /home > /home/fdupes.txt

注意 :您可能取代'/家“与您所需的文件夹。 还可以使用选项'-r''-S'如果你想分别递归搜索和打印尺寸。

9.您可以省略从每一组通过选择匹配的第一个文件“-f”。

First列出目录的文件。

$ ls -l /home/$USER/Desktop/youcl
total 20
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl9 (3rd copy).txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl9 (4th copy).txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl9 (another copy).txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl9 (copy).txt
-rw-r--r-- 1 youcl youcl 65 Aug  8 11:22 youcl9.txt

然后从每组匹配中省略第一个文件。

$ fdupes -f /home/$USER/Desktop/youcl
/home/youcl/Desktop/youcl9 (copy).txt
/home/youcl/Desktop/youcl9 (3rd copy).txt
/home/youcl/Desktop/youcl9 (another copy).txt
/home/youcl/Desktop/youcl9 (4th copy).txt

10.检查安装fdupes版本。

$ fdupes --version
fdupes 1.51

11.如果您需要fdupes你可以使用开关“-h”任何帮助。

$ fdupes -h
Usage: fdupes [options] DIRECTORY...
-r --recurse     	for every directory given follow subdirectories
encountered within
-R --recurse:    	for each directory given after this option follow
subdirectories encountered within (note the ':' at
the end of the option, manpage for more details)
-s --symlinks    	follow symlinks
-H --hardlinks   	normally, when two or more files point to the same
disk area they are treated as non-duplicates; this
option will change this behavior
-n --noempty     	exclude zero-length files from consideration
-A --nohidden    	exclude hidden files from consideration
-f --omitfirst   	omit the first file in each set of matches
-1 --sameline    	list each set of matches on a single line
-S --size        	show size of duplicate files
-m --summarize   	summarize dupe information
-q --quiet       	hide progress indicator
-d --delete      	prompt user for files to preserve and delete all
others; important: under particular circumstances,
data may be lost when using this option together
with -s or --symlinks, or when specifying a
particular directory more than once; refer to the
fdupes documentation for additional information
-N --noprompt    	together with --delete, preserve the first file in
each set of duplicates and delete the rest without
prompting the user
-v --version     	display fdupes version
-h --help        	display this help message

这是所有现在。 让我知道你是如何找到和删除重复文件到现在为止在Linux? 并告诉我你对这个实用程序的意见。 在下面的评论部分提出宝贵的反馈,不要忘记喜欢/分享我们,并帮助我们传播。

我在另一个工具称为工作fslint删除重复的文件 ,不久将发布,你的人会喜欢阅读。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏