成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

fdupes:Linux中查找并刪除重復文件的命令行工具

系統 Linux 系統運維
fdupes是Linux下的一個工具,它由Adrian Lopez用C編程語言編寫并基于MIT許可證發行,該應用程序可以在指定的目錄及子目錄中查找重復的文件。如果你的機器上跑著GNU/Linux,那么查找重復文件會變得十分簡單,這多虧了fdupes工具。

對于大多數計算機用戶而言,查找并替換重復的文件是一個常見的需求。查找并移除重復文件真是一項令人不勝其煩的工作,它耗時又耗力。但如果你的機器上跑著GNU/Linux,那么查找重復文件會變得十分簡單,這多虧了fdupes工具。

fdupes——在Linux中查找并刪除重復文件

fdupes是啥東東?

fdupes是Linux下的一個工具,它由Adrian Lopez用C編程語言編寫并基于MIT許可證發行,該應用程序可以在指定的目錄及子目錄中查找重復的文件。fdupes通過對比文件的MD5簽名,以及逐字節比較文件來識別重復內容,fdupes有各種選項,可以實現對文件的列出、刪除、替換為文件副本的硬鏈接等操作。

文件對比以下列順序開始:

大小對比 > 部分 MD5 簽名對比 > 完整 MD5 簽名對比 > 逐字節對比

安裝 fdupes 到 Linux

在基于Debian的系統上,如UbuntuLinux Mint,安裝***版fdupes,用下面的命令手到擒來。

  1. $ sudo apt-get install fdupes

在基于CentOS/RHEL和Fedora的系統上,你需要開啟epel倉庫來安裝fdupes包。

  1. # yum install fdupes
  2. # dnf install fdupes [在 Fedora 22 及其以后]

注意:自Fedora 22之后,默認的包管理器yum被dnf取代了。

fdupes命令如何使用

1、作為演示的目的,讓我們來在某個目錄(比如 tecmint)下創建一些重復文件,命令如下:

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

在執行以上命令后,讓我們使用ls命令驗證重復文件是否創建。

  1. $ ls -l
  2.  
  3. total 60
  4. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint10.txt
  5. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint11.txt
  6. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint12.txt
  7. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint13.txt
  8. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint14.txt
  9. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint15.txt
  10. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint1.txt
  11. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint2.txt
  12. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint3.txt
  13. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint4.txt
  14. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint5.txt
  15. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint6.txt
  16. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint7.txt
  17. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint8.txt
  18. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt

上面的腳本創建了15個文件,名稱分別為tecmint1.txt,tecmint2.txt……tecmint15.txt,并且每個文件的數據相同,如:

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

2、現在在tecmint文件夾內搜索重復的文件。

  1. $ fdupes /home/$USER/Desktop/tecmint
  2.  
  3. /home/tecmint/Desktop/tecmint/tecmint13.txt
  4. /home/tecmint/Desktop/tecmint/tecmint8.txt
  5. /home/tecmint/Desktop/tecmint/tecmint11.txt
  6. /home/tecmint/Desktop/tecmint/tecmint3.txt
  7. /home/tecmint/Desktop/tecmint/tecmint4.txt
  8. /home/tecmint/Desktop/tecmint/tecmint6.txt
  9. /home/tecmint/Desktop/tecmint/tecmint7.txt
  10. /home/tecmint/Desktop/tecmint/tecmint9.txt
  11. /home/tecmint/Desktop/tecmint/tecmint10.txt
  12. /home/tecmint/Desktop/tecmint/tecmint2.txt
  13. /home/tecmint/Desktop/tecmint/tecmint5.txt
  14. /home/tecmint/Desktop/tecmint/tecmint14.txt
  15. /home/tecmint/Desktop/tecmint/tecmint1.txt
  16. /home/tecmint/Desktop/tecmint/tecmint15.txt
  17. /home/tecmint/Desktop/tecmint/tecmint12.txt

3、使用-r選項在每個目錄包括其子目錄中遞歸搜索重復文件。

它會遞歸搜索所有文件和文件夾,花一點時間來掃描重復文件,時間的長短取決于文件和文件夾的數量。在此其間,終端中會顯示全部過程,像下面這樣。

  1. $ fdupes -r /home
  2.  
  3. Progress [37780/54747] 69%

4、使用-S選項來查看某個文件夾內找到的重復文件的大小。

  1. $ fdupes -S /home/$USER/Desktop/tecmint
  2.  
  3. 65 bytes each:
  4. /home/tecmint/Desktop/tecmint/tecmint13.txt
  5. /home/tecmint/Desktop/tecmint/tecmint8.txt
  6. /home/tecmint/Desktop/tecmint/tecmint11.txt
  7. /home/tecmint/Desktop/tecmint/tecmint3.txt
  8. /home/tecmint/Desktop/tecmint/tecmint4.txt
  9. /home/tecmint/Desktop/tecmint/tecmint6.txt
  10. /home/tecmint/Desktop/tecmint/tecmint7.txt
  11. /home/tecmint/Desktop/tecmint/tecmint9.txt
  12. /home/tecmint/Desktop/tecmint/tecmint10.txt
  13. /home/tecmint/Desktop/tecmint/tecmint2.txt
  14. /home/tecmint/Desktop/tecmint/tecmint5.txt
  15. /home/tecmint/Desktop/tecmint/tecmint14.txt
  16. /home/tecmint/Desktop/tecmint/tecmint1.txt
  17. /home/tecmint/Desktop/tecmint/tecmint15.txt
  18. /home/tecmint/Desktop/tecmint/tecmint12.txt

5、你可以同時使用-S-r選項來查看所有涉及到的目錄和子目錄中的重復文件的大小,如下:

  1. $ fdupes -Sr /home/avi/Desktop/
  2.  
  3. 65 bytes each:
  4. /home/tecmint/Desktop/tecmint/tecmint13.txt
  5. /home/tecmint/Desktop/tecmint/tecmint8.txt
  6. /home/tecmint/Desktop/tecmint/tecmint11.txt
  7. /home/tecmint/Desktop/tecmint/tecmint3.txt
  8. /home/tecmint/Desktop/tecmint/tecmint4.txt
  9. /home/tecmint/Desktop/tecmint/tecmint6.txt
  10. /home/tecmint/Desktop/tecmint/tecmint7.txt
  11. /home/tecmint/Desktop/tecmint/tecmint9.txt
  12. /home/tecmint/Desktop/tecmint/tecmint10.txt
  13. /home/tecmint/Desktop/tecmint/tecmint2.txt
  14. /home/tecmint/Desktop/tecmint/tecmint5.txt
  15. /home/tecmint/Desktop/tecmint/tecmint14.txt
  16. /home/tecmint/Desktop/tecmint/tecmint1.txt
  17. /home/tecmint/Desktop/tecmint/tecmint15.txt
  18. /home/tecmint/Desktop/tecmint/tecmint12.txt
  19.  
  20. 107 bytes each:
  21. /home/tecmint/Desktop/resume_files/r-csc.html
  22. /home/tecmint/Desktop/resume_files/fc.html

#p#

6、不同于在一個或所有文件夾內遞歸搜索,你可以選擇按要求有選擇性地在兩個或三個文件夾內進行搜索。不必再提醒你了吧,如有需要,你可以使用-S和/或-r選項。

  1. $ fdupes /home/avi/Desktop/ /home/avi/Templates/

7、要刪除重復文件,同時保留一個副本,你可以使用-d選項。使用該選項,你必須額外小心,否則最終結果可能會是文件/數據的丟失。鄭重提醒,此操作不可恢復。

  1. $ fdupes -d /home/$USER/Desktop/tecmint
  2.  
  3. [1] /home/tecmint/Desktop/tecmint/tecmint13.txt
  4. [2] /home/tecmint/Desktop/tecmint/tecmint8.txt
  5. [3] /home/tecmint/Desktop/tecmint/tecmint11.txt
  6. [4] /home/tecmint/Desktop/tecmint/tecmint3.txt
  7. [5] /home/tecmint/Desktop/tecmint/tecmint4.txt
  8. [6] /home/tecmint/Desktop/tecmint/tecmint6.txt
  9. [7] /home/tecmint/Desktop/tecmint/tecmint7.txt
  10. [8] /home/tecmint/Desktop/tecmint/tecmint9.txt
  11. [9] /home/tecmint/Desktop/tecmint/tecmint10.txt
  12. [10] /home/tecmint/Desktop/tecmint/tecmint2.txt
  13. [11] /home/tecmint/Desktop/tecmint/tecmint5.txt
  14. [12] /home/tecmint/Desktop/tecmint/tecmint14.txt
  15. [13] /home/tecmint/Desktop/tecmint/tecmint1.txt
  16. [14] /home/tecmint/Desktop/tecmint/tecmint15.txt
  17. [15] /home/tecmint/Desktop/tecmint/tecmint12.txt
  18.  
  19. Set 1 of 1, preserve files [1 - 15, all]:

你可能注意到了,所有重復的文件被列了出來,并給出刪除提示,一個一個來,或者指定范圍,或者一次性全部刪除。你可以選擇一個范圍,就像下面這樣,來刪除指定范圍內的文件。

  1. Set 1 of 1, preserve files [1 - 15, all]: 2-15
  2.  
  3. [-] /home/tecmint/Desktop/tecmint/tecmint13.txt
  4. [+] /home/tecmint/Desktop/tecmint/tecmint8.txt
  5. [-] /home/tecmint/Desktop/tecmint/tecmint11.txt
  6. [-] /home/tecmint/Desktop/tecmint/tecmint3.txt
  7. [-] /home/tecmint/Desktop/tecmint/tecmint4.txt
  8. [-] /home/tecmint/Desktop/tecmint/tecmint6.txt
  9. [-] /home/tecmint/Desktop/tecmint/tecmint7.txt
  10. [-] /home/tecmint/Desktop/tecmint/tecmint9.txt
  11. [-] /home/tecmint/Desktop/tecmint/tecmint10.txt
  12. [-] /home/tecmint/Desktop/tecmint/tecmint2.txt
  13. [-] /home/tecmint/Desktop/tecmint/tecmint5.txt
  14. [-] /home/tecmint/Desktop/tecmint/tecmint14.txt
  15. [-] /home/tecmint/Desktop/tecmint/tecmint1.txt
  16. [-] /home/tecmint/Desktop/tecmint/tecmint15.txt
  17. [-] /home/tecmint/Desktop/tecmint/tecmint12.txt

8、從安全角度出發,你可能想要打印fdupes的輸出結果到文件中,然后檢查文本文件來決定要刪除什么文件。這可以降低意外刪除文件的風險。你可以這么做:

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

注意:你應該替換/home為你想要的文件夾。同時,如果你想要遞歸搜索并打印大小,可以使用-r-S選項。

9、你可以使用-f選項來忽略每個匹配集中的***文件。

首先列出該目錄中的文件。

  1. $ ls -l /home/$USER/Desktop/tecmint
  2.  
  3. total 20
  4. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (3rd copy).txt
  5. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (4th copy).txt
  6. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (another copy).txt
  7. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (copy).txt
  8. -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt

然后,忽略掉每個匹配集中的***文件。

  1. $ fdupes -f /home/$USER/Desktop/tecmint
  2.  
  3. /home/tecmint/Desktop/tecmint9 (copy).txt
  4. /home/tecmint/Desktop/tecmint9 (3rd copy).txt
  5. /home/tecmint/Desktop/tecmint9 (another copy).txt
  6. /home/tecmint/Desktop/tecmint9 (4th copy).txt

10、檢查已安裝的fdupes版本。

  1. $ fdupes --version
  2.  
  3. fdupes 1.51

11、如果你需要關于fdupes的幫助,可以使用-h開關。

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

到此為止了。讓我知道你以前怎么在Linux中查找并刪除重復文件的吧?同時,也讓我知道你關于這個工具的看法。在下面的評論部分中提供你有價值的反饋吧!別忘了為我們點贊并分享,幫助我們擴散哦!

我正在使用另外一個移除重復文件的工具,它叫fslint。很快就會把使用心得分享給大家哦,你們一定會喜歡看的。

責任編輯:火鳳凰 來源: Linux中國
相關推薦

2022-04-11 06:03:24

FdupesLinux命令行工具

2020-11-13 09:14:23

Linux重復文件命令行

2011-01-18 19:11:26

Postfix命令行

2022-11-08 09:38:18

Linux命令行刪除文件

2023-03-21 09:31:30

Linux命令行文件夾

2022-10-25 13:01:36

Linux命令行空目錄

2022-10-14 19:30:29

Linux

2022-11-02 08:20:43

Linux

2019-07-15 05:50:19

Linux命令行VirtualBox版

2023-02-07 09:49:26

Linux命令行合并文件

2010-02-04 15:17:48

Linux wget

2021-07-08 08:56:30

Linux命令刪除用戶

2017-03-03 10:10:15

2019-08-27 10:32:01

Linux操作系統Windows

2014-10-31 10:50:28

Linux命令行工具

2022-10-20 16:51:44

Linux命令行IP 地址

2015-07-29 10:34:50

Linux系統命令行工具

2015-07-30 11:04:08

Linux命令行工具

2015-07-30 11:24:47

Linux 系統命令行工具

2018-12-17 10:30:34

Linux命令行boxes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 毛片一级片| 超碰婷婷 | 成人三级视频 | 久久av一区 | www亚洲免费国内精品 | 中文字幕一区二区三区四区五区 | 亚洲视频一区在线观看 | 中文字幕观看 | 极品国产视频 | 欧美专区在线观看 | 国产精品99久久久精品免费观看 | 亚洲网站在线播放 | 蜜桃免费一区二区三区 | 成人毛片视频免费 | 欧美一级久久 | 亚洲高清在线 | 国产精品免费观看视频 | 精品欧美乱码久久久久久 | 欧美一区二区三区国产 | 精品美女在线观看 | 免费色网址 | 欧美a√| 亚洲国产精品久久 | 久久9999久久| 日本天堂一区 | 欧美888| 国产一区二区在线观看视频 | 日韩在线看片 | 精品日韩欧美一区二区 | 黑人巨大精品欧美黑白配亚洲 | 亚洲精品黄色 | 午夜综合 | 国产高清精品一区二区三区 | 欧美成人免费在线视频 | 日韩国产精品一区二区三区 | 精品一区二区电影 | 日韩欧美专区 | 啪一啪| 成年人黄色一级片 | 久久久久亚洲 |