您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Linux中怎么找到并刪除重復文件,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
出于本指南的目的,我將討論下面的三個工具:
Rdfind
Fdupes
FSlint
這三個工具是自由開源的,且運行在大多數類 Unix 系統中。
Rdfind 意即 redundant data find(冗余數據查找),是一個通過訪問目錄和子目錄來找出重復文件的自由開源的工具。它是基于文件內容而不是文件名來比較。Rdfind 使用排序算法來區分原始文件和重復文件。如果你有兩個或者更多的相同文件,Rdfind 會很智能的找到原始文件并認定剩下的文件為重復文件。一旦找到副本文件,它會向你報告。你可以決定是刪除還是使用硬鏈接或者符號(軟)鏈接代替它們。
安裝 Rdfind
Rdfind 存在于 AUR 中。因此,在基于 Arch 的系統中,你可以像下面一樣使用任一如 Yay AUR 程序助手安裝它。
$ yay -S rdfind
在 Debian、Ubuntu、Linux Mint 上:
$ sudo apt-get install rdfind
在 Fedora 上:
$ sudo dnf install rdfind
在 RHEL、CentOS 上:
$ sudo yum install epel-release$ sudo yum install rdfind
用法
一旦安裝完成,僅帶上目錄路徑運行 Rdfind 命令就可以掃描重復文件。
$ rdfind ~/Downloads
正如你看到上面的截屏,Rdfind 命令將掃描 ~/Downloads
目錄,并將結果存儲到當前工作目錄下一個名為 results.txt
的文件中。你可以在 results.txt
文件中看到可能是重復文件的名字。
$ cat results.txt# Automatically generated# duptype id depth size device inode priority nameDUPTYPE_FIRST_OCCURRENCE 1469 8 9 2050 15864884 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test5.regexDUPTYPE_WITHIN_SAME_TREE -1469 8 9 2050 15864886 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test6.regex[...]DUPTYPE_FIRST_OCCURRENCE 13 0 403635 2050 15740257 1 /home/sk/Downloads/Hyperledger(1).pdfDUPTYPE_WITHIN_SAME_TREE -13 0 403635 2050 15741071 1 /home/sk/Downloads/Hyperledger.pdf# end of file
通過檢查 results.txt
文件,你可以很容易的找到那些重復文件。如果愿意你可以手動的刪除它們。
此外,你可在不修改其他事情情況下使用 -dryrun
選項找出所有重復文件,并在終端上輸出匯總信息。
$ rdfind -dryrun true ~/Downloads
一旦找到重復文件,你可以使用硬鏈接或符號鏈接代替他們。
使用硬鏈接代替所有重復文件,運行:
$ rdfind -makehardlinks true ~/Downloads
使用符號鏈接/軟鏈接代替所有重復文件,運行:
$ rdfind -makesymlinks true ~/Downloads
目錄中有一些空文件,也許你想忽略他們,你可以像下面一樣使用 -ignoreempty
選項:
$ rdfind -ignoreempty true ~/Downloads
如果你不再想要這些舊文件,刪除重復文件,而不是使用硬鏈接或軟鏈接代替它們。
刪除重復文件,就運行:
$ rdfind -deleteduplicates true ~/Downloads
如果你不想忽略空文件,并且和所喲重復文件一起刪除。運行:
$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads
更多細節,參照幫助部分:
$ rdfind --help
手冊頁:
$ man rdfind
Fdupes 是另一個在指定目錄以及子目錄中識別和移除重復文件的命令行工具。這是一個使用 C 語言編寫的自由開源工具。Fdupes 通過對比文件大小、部分 MD5 簽名、全部 MD5 簽名,***執行逐個字節對比校驗來識別重復文件。
與 Rdfind 工具類似,Fdupes 附帶非常少的選項來執行操作,如:
在目錄和子目錄中遞歸的搜索重復文件
從計算中排除空文件和隱藏文件
顯示重復文件大小
出現重復文件時立即刪除
使用不同的擁有者/組或權限位來排除重復文件
更多
安裝 Fdupes
Fdupes 存在于大多數 Linux 發行版的默認倉庫中。
在 Arch Linux 和它的變種如 Antergos、Manjaro Linux 上,如下使用 Pacman 安裝它。
$ sudo pacman -S fdupes
在 Debian、Ubuntu、Linux Mint 上:
$ sudo apt-get install fdupes
在 Fedora 上:
$ sudo dnf install fdupes
在 RHEL、CentOS 上:
$ sudo yum install epel-release$ sudo yum install fdupes
用法
Fdupes 用法非常簡單。僅運行下面的命令就可以在目錄中找到重復文件,如:~/Downloads
。
$ fdupes ~/Downloads
我系統中的樣例輸出:
/home/sk/Downloads/Hyperledger.pdf/home/sk/Downloads/Hyperledger(1).pdf
你可以看到,在 /home/sk/Downloads/
目錄下有一個重復文件。它僅顯示了父級目錄中的重復文件。如何顯示子目錄中的重復文件?像下面一樣,使用 -r
選項。
$ fdupes -r ~/Downloads
現在你將看到 /home/sk/Downloads/
目錄以及子目錄中的重復文件。
Fdupes 也可用來從多個目錄中迅速查找重復文件。
$ fdupes ~/Downloads ~/Documents/ostechnix
你甚至可以搜索多個目錄,遞歸搜索其中一個目錄,如下:
$ fdupes ~/Downloads -r ~/Documents/ostechnix
上面的命令將搜索 ~/Downloads
目錄,~/Documents/ostechnix
目錄和它的子目錄中的重復文件。
有時,你可能想要知道一個目錄中重復文件的大小。你可以使用 -S
選項,如下:
$ fdupes -S ~/Downloads403635 bytes each:/home/sk/Downloads/Hyperledger.pdf/home/sk/Downloads/Hyperledger(1).pdf
類似的,為了顯示父目錄和子目錄中重復文件的大小,使用 -Sr
選項。
我們可以在計算時分別使用 -n
和 -A
選項排除空白文件以及排除隱藏文件。
$ fdupes -n ~/Downloads$ fdupes -A ~/Downloads
在搜索指定目錄的重復文件時,***個命令將排除零長度文件,后面的命令將排除隱藏文件。
匯總重復文件信息,使用 -m
選項。
$ fdupes -m ~/Downloads1 duplicate files (in 1 sets), occupying 403.6 kilobytes
刪除所有重復文件,使用 -d
選項。
$ fdupes -d ~/Downloads
樣例輸出:
[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf[2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf Set 1 of 1, preserve files [1 - 2, all]:
這個命令將提示你保留還是刪除所有其他重復文件。輸入任一號碼保留相應的文件,并刪除剩下的文件。當使用這個選項的時候需要更加注意。如果不小心,你可能會刪除原文件。
如果你想要每次保留每個重復文件集合的***個文件,且無提示的刪除其他文件,使用 -dN
選項(不推薦)。
$ fdupes -dN ~/Downloads
當遇到重復文件時刪除它們,使用 -I
標志。
$ fdupes -I ~/Downloads
關于 Fdupes 的更多細節,查看幫助部分和 man 頁面。
$ fdupes --help$ man fdupes
FSlint 是另外一個查找重復文件的工具,有時我用它去掉 Linux 系統中不需要的重復文件并釋放磁盤空間。不像另外兩個工具,FSlint 有 GUI 和 CLI 兩種模式。因此對于新手來說它更友好。FSlint 不僅僅找出重復文件,也找出壞符號鏈接、壞名字文件、臨時文件、壞的用戶 ID、空目錄和非精簡的二進制文件等等。
安裝 FSlint
FSlint 存在于 AUR,因此你可以使用任一 AUR 助手安裝它。
$ yay -S fslint
在 Debian、Ubuntu、Linux Mint 上:
$ sudo apt-get install fslint
在 Fedora 上:
$ sudo dnf install fslint
在 RHEL,CentOS 上:
$ sudo yum install epel-release$ sudo yum install fslint
一旦安裝完成,從菜單或者應用程序啟動器啟動它。
FSlint GUI 展示如下:
如你所見,FSlint 界面友好、一目了然。在 “Search path” 欄,添加你要掃描的目錄路徑,點擊左下角 “Find” 按鈕查找重復文件。驗證遞歸選項可以在目錄和子目錄中遞歸的搜索重復文件。FSlint 將快速的掃描給定的目錄并列出重復文件。
從列表中選擇那些要清理的重復文件,也可以選擇 “Save”、“Delete”、“Merge” 和 “Symlink” 操作他們。
在 “Advanced search parameters” 欄,你可以在搜索重復文件的時候指定排除的路徑。
FSlint 命令行選項
FSlint 提供下面的 CLI 工具集在你的文件系統中查找重復文件。
findup
— 查找重復文件
findnl
— 查找名稱規范(有問題的文件名)
findu8
— 查找非法的 utf8 編碼的文件名
findbl
— 查找壞鏈接(有問題的符號鏈接)
findsn
— 查找同名文件(可能有沖突的文件名)
finded
— 查找空目錄
findid
— 查找死用戶的文件
findns
— 查找非精簡的可執行文件
findrs
— 查找文件名中多余的空白
findtf
— 查找臨時文件
findul
— 查找可能未使用的庫
zipdir
— 回收 ext2 目錄項下浪費的空間
所有這些工具位于 /usr/share/fslint/fslint/fslint
下面。
例如,在給定的目錄中查找重復文件,運行:
$ /usr/share/fslint/fslint/findup ~/Downloads/
類似的,找出空目錄命令是:
$ /usr/share/fslint/fslint/finded ~/Downloads/
獲取每個工具更多細節,例如:findup
,運行:
$ /usr/share/fslint/fslint/findup --help
關于 FSlint 的更多細節,參照幫助部分和 man 頁。
$ /usr/share/fslint/fslint/fslint --help$ man fslint
以上就是Linux中怎么找到并刪除重復文件,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。