[轉]Linux下使用fdupes删除指定目錄下重複文件

http://gislite.net/631.html

 

摘要: 我们怎么使用SEHLL 和命令行去删除 指定目录下的重复文件?我们怎么删除不同目录下重复的文件?我们将使用一个工具:fdupes ,它会查找和删除指定目录的重复文件,它通过文件的大小和MD5值进行比较 。一个字节一个字节进行对比。fdupes是一个删除指定目录…

我们怎么使用SEHLL 和命令行去删除 指定目录下的重复文件?我们怎么删除不同目录下重复的文件?我们将使用一个工具:fdupes ,它会查找和删除指定目录的重复文件,它通过文件的大小和MD5值进行比较 。一个字节一个字节进行对比。fdupes是一个删除指定目录下重复文件的好工具。

安装fdupes

如果你使用debian/ubuntu linux

# apt-get install fdupes

如果你使用 redhat/rhel/fedota/centos 你可以使用rpm包安装或yum

rpm : http://www.cyberciti.biz/faq/rhel-centos-fedora-media-mp3-players-installtion/
yum install fdupes

fdupes 怎么工作?

在 /etc目录查找重复文件

#fdupes /etc

结果

/etc/vimrc
/etc/virc

删除不需要的文件? (用此可以查找磁盘上多余的文件–当空间不足时)

测试一下:

cp /etc/vimrc /etc/virc /tmp/test

# fdupes -d /tmp/a/

[1] /tmp/a/vimrc
[2] /tmp/a/virc

Set 1 of 1, preserve files [1 – 2, all]: 1

[+] /tmp/a/vimrc
[-] /tmp/a/virc

(只选择删除其中一个,保留一个)

再查找一下

# fdupes /tmp/a/

查找结果为空

递归查询命令: -r

exp: fdupes -r /etc/ /data/etc/

查看重复文件的大小

# fdupes -S /etc

1533 bytes each:
/etc/vimrc
/etc/virc

更多命令见:man page fdupes

与Sed 结合 删除一些不必要的文件 :

fdupes -r -n -S /directory | sed -r “s/^/#rm ”/” | sed -r “s/$/”/” >duplicate-files.sh

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *