在Linux中查詢和刪除重複檔案的4種方法
大神教你在Linux中查詢和刪除重複檔案的4種方法
在本教程中,您將學習如何使用rdfind和fdupes命令列工具以及稱為DupeGuru和FSlint的GUI工具在Linux中查詢和刪除重複檔案。
如果您習慣於從網路下載各種內容,則整理您的主目錄甚至系統可能會特別困難。
您可能會發現自己下載了相同的mp3,pdf,zip(以及所有其他型別的副檔名)並將其複製到其他目錄。這可能會導致目錄中充斥著各種無用的重複內容。
在本教程中,您將學習如何使用rdfind和fdupes命令列工具以及稱為DupeGuru和FSlint的GUI工具在Linux中查詢和刪除重複檔案。
需要注意的是 – 永遠要小心你在系統上刪除的內容,因為這可能會導致不必要的資料丟失。如果您正在使用一個新工具,首先在一個測試目錄中嘗試它,在那裡刪除檔案不會出現問題。
1. Rdfind –在Linux中查詢重複檔案
Rdfind 意即 redundant data find(冗餘資料查詢),是一個通過訪問目錄和子目錄來找出重複檔案的自由開源的工具。它是基於檔案內容而不是檔名來比較。Rdfind 使用排序演算法來區分原始檔案和重複檔案。如果你有兩個或者更多的相同檔案,Rdfind 會很智慧的找到原始檔案並認定剩下的檔案為重複檔案。一旦找到副本檔案,它會向你報告。你可以決定是刪除還是使用硬連結或者符號(軟)連結代替它們。
要在Linux中安裝rdfind,請根據您的Linux發行版使用以下命令。
- $sudoapt-getinstallrdfind[在Debian/Ubuntu上]
- $sudoyuminstallepel-release&&$sudoyuminstallrdfind[在CentOS/RHEL上]
- $sudodnfinstallrdfind[在Fedora22+上]
- $sudopacman-Srdfind[在ArchLinux上]
要在目錄上執行rdfind,只需鍵入rdfind和目標目錄。下面來看一個例子:
- linuxmi@linuxmi:~$rdfind/home/user
正如你所看到rdfind將結果儲存在一個檔名為RESULTS.TXT位於從那裡你執行該程式的目錄中。該檔案包含rdfind找到的所有重複檔案。您可以檢視檔案,並根據需要手動刪除重複的檔案。
您可以做的另一件事是使用-dryruna選項,該選項將提供重複項列表,而無需執行任何操作:
- rdfind-dryruntrue/home/user
找到重複項後,您可以選擇將其替換為硬連結。
- rdfind-makehardlinkstrue/home/user
如果您希望刪除重複項,則可以執行。
- rdfind-deleteduplicatestrue/home/user
要檢視rdfind的其他有用選項,可以使用rdfind手冊。
- manrdfind
2. Fdupes –在Linux中掃描重複檔案
Fdupes是另一個程式,它使您可以識別系統上的重複檔案。它是免費的並且是開源的,並且使用C語言編寫。它使用以下方法來確定重複的檔案:
- 比較部分md5sum簽名
- 比較完整的md5sum簽名
- 逐位元組比較驗證
就像rdfind一樣,它具有類似的選項:
- 遞迴搜尋
- 排除空檔案
- 顯示重複檔案的大小
- 立即刪除重複項
- 排除其他所有者的檔案
要在Linux中安裝fdupes,請根據Linux發行版使用以下命令。
- $sudoapt-getinstallfdupes[在Debian/Ubuntu上]
- $sudoyuminstallepel-release&&$sudoyuminstallfdupes[在CentOS/RHEL上]
- $sudodnfinstallfdupes[在Fedora22+上]
- $sudopacman-Sfdupes[在ArchLinux上]
Fdupes語法類似於rdfind。只需鍵入命令,然後鍵入您要掃描的目錄即可。
- $fdupes<dir>
- linuxmi@linuxmi:~$fdupes/home/linuxmi/www.linuxmi.com
- /home/linuxmi/www.linuxmi.com/linuxmi.txt
- /home/linuxmi/www.linuxmi.com/linuxmi(復件).txt
要遞迴地搜尋檔案,必須像這樣指定-r選項。
- $fdupes-r<dir>
- linuxmi@linuxmi:~$fdupes-r/home/linuxmi/www.linuxmi.com
- /home/linuxmi/www.linuxmi.com/linuxmi.txt
- /home/linuxmi/www.linuxmi.com/linuxmi(復件).txt
- /home/linuxmi/www.linuxmi.com/color-schemes/.git/logs/refs/remotes/origin/HEAD
- /home/linuxmi/www.linuxmi.com/color-schemes/.git/logs/refs/heads/master
- /home/linuxmi/www.linuxmi.com/color-schemes/.git/logs/HEAD
- /home/linuxmi/www.linuxmi.com/color-schemes/script/test
- /home/linuxmi/www.linuxmi.com/test
還可以指定多個目錄,並指定遞迴搜尋的目錄。
- fdupes<dir1>-r<dir2>
要使fdupes計算重複檔案的大小,請使用該-S選項。
- fdupes-S<dir>
要收集有關找到的檔案的摘要資訊,請使用-m選項。
- fdupes-m<dir>
- fdupes-m/home/linuxmi/www.linuxmi.com/
最後,如果要刪除所有重複項,請使用如下所示-d的選項。
- fdupes-d<dir>
Fdupes將詢問要刪除哪些找到的檔案。您將需要輸入檔案號:
- fdupes-d/home/linuxmi/www.linuxmi.com/
絕對不建議使用的解決方案是使用該-N選項,該選項將導致僅保留第一個檔案。
- fdupes-dN<dir>
要獲取與fdupes一起使用的可用選項的列表,請通過執行檢視幫助頁面。
- fdupes-help
3. dupeGuru –在Linux中查詢重複檔案
dupeGuru是一個開放原始碼和跨平臺的工具,可用於在Linux系統中查詢重複檔案。該工具可以掃描檔名或一個或多個資料夾中的內容。它還允許您找到與要搜尋的檔案相似的檔名。
dupeGuru有適用於Windows,Mac和Linux平臺的不同版本。它的快速模糊匹配演算法功能可幫助您在短時間內找到重複的檔案。它是可自定義的,您可以提取所需的確切重複檔案,並從系統中清除不需要的檔案。
要在Linux中安裝dupeGuru,請根據您的Linux發行版使用以下命令。
- —————在Debian/Ubuntu/Mint上—————
- $sudoadd-apt-repositoryppa:dupeguru/ppa
- $sudoapt-getupdate
- $sudoapt-getinstalldupeguru
- —————在ArchLinux上—————
- $sudopacman-Sdupeguru
Ubuntu 20.04 安裝 dupeGuru 見 http://www.linuxidc.net/thread-9837-1-1.html
4. FSlint – Linux的重複檔案查詢器
FSlint是一個免費實用程式,用於查詢和清除檔案系統上各種形式的皮棉。它還報告重複檔案,空目錄,臨時檔案,重複/衝突(二進位制)名稱,錯誤的符號連結等。它同時具有命令列和GUI模式。
要在Linux中安裝FSlint,請根據Linux發行版使用以下命令。
- $sudoapt-getinstallfslint[在Debian/Ubuntu上]
- $sudoyuminstallepel-release&&$sudoyuminstallfslint[在CentOS/RHEL上]
- $sudodnfinstallfslint[在Fedora22+上]
- $sudopacman-Sfslint[在ArchLinux上]
Ubuntu 20.04 安裝 FSlint 的方法見 http://www.linuxidc.net/thread-9836-1-1.html
結論
這些是在Linux系統上查詢重複檔案的非常有用的工具,但是刪除此類檔案時應格外小心。
如果不確定是否需要檔案,最好建立該檔案的備份,並在刪除檔案之前記住其目錄。如果您有任何問題或意見,請在下面的評論部分中提交。
本文來自希曼部落格-www.ximan.tech,作者:希曼部落格,轉載請註明原文連結:https://www.cnblogs.com/lihuaichen/p/15410218.html