您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Linux怎么找到系統里的重復文件并快速釋放磁盤空間,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
不管是 Windows 電腦還是 Linux 電腦,在使用的過程中,或多或少都會留下很多重復的文件。這些文件不僅會占用我們的磁盤,還會拖累我們的系統,所以,很有必要干掉這些重復的文件。
下面將介紹 6 種方法找到系統里的重復文件,讓你快速釋放硬盤空間!
在我們平常操作當中,比較兩個文件的差異最簡單的方法可能就是使用 diff
命令。diff 命令的輸出將使用 和
>
符號顯示兩個文件之間的差異,利用這個特性我們可以找到相同的文件。
當兩個文件有差異時,diff 命令將輸出差異點:
$ diff index.html backup.html2438a2439,2441> > That's all there is to report.>
如果你的 diff 命令沒有輸出,則表示兩個文件相同:
$ diff home.html index.html$
但是, diff 命令的缺點是它一次只能比較兩個文件,如果我們要比較多個文件,這樣兩個兩個比較效率肯定非常低下。
校驗和命令 cksum
會根據一定的算法將文件的內容計算成一個很長的數字(如2819078353 228029)。雖然算出的結果不是絕對唯一,但是內容不相同的文件導致校驗和相同的可能性跟中國男足進世界杯差不多。
$ cksum *.html2819078353 228029 backup.html4073570409 227985 home.html4073570409 227985 index.html
在我們上面的操作中,我們可以看到第二個和第三個文件校驗和是相同的,所以我們可以認為這兩個文件是一樣的。
雖然 find 命令沒有查找重復文件的選項,但是它卻可用于按名稱或類型搜索文件并運行cksum 命令。具體操作如下。
$ find . -name "*.html" -exec cksum {} \;4073570409 227985 ./home.html2819078353 228029 ./backup.html4073570409 227985 ./index.html
fslint
命令可以用來專門查找重復文件。但是這里有個注意事項,就是我們需要給它一個起始位置。如果我們需要運行大量文件,該命令可能需要相當長的時間才能完成查找。
$ fslint .-----------------------------------file name lint-------------------------------Invalid utf8 names-----------------------------------file case lint----------------------------------DUPlicate files in links------------------------------------suspect links--------------------------------Empty Directories./.gnupg----------------------------------Temporary Files----------------------duplicate/conflicting Names------------------------------------------Bad ids-------------------------Non Stripped executables
Tips:我們必須在系統上安裝 fslint ,還需要將它添加到搜索路徑中:
$ export PATH=$PATH:/usr/share/fslint/fslint
rdfind
命令還將尋找重復的(相同內容的)文件。被稱為“冗余數據查找”,該命令可以根據文件日期確定哪些文件是原始文件,這對我們選擇刪除重復項很有幫助,因為它會刪除較新的文件。
$ rdfind ~Now scanning "/home/alvin", found 12 files.Now have 12 files in total.Removed 1 files due to nonunique device and inode.Total size is 699498 bytes or 683 KiBRemoved 9 files due to unique sizes from list.2 files left.Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.Now eliminating candidates based on sha1 checksum:removed 0 files from list.2 files left.It seems like you have 2 files that are not uniqueTotally, 223 KiB can be reduced.Now making results file results.txt
我們還可以在 dryrun 中運行。
$ rdfind -dryrun true ~(DRYRUN MODE) Now scanning "/home/alvin", found 12 files.(DRYRUN MODE) Now have 12 files in total.(DRYRUN MODE) Removed 1 files due to nonunique device and inode.(DRYRUN MODE) Total size is 699352 bytes or 683 KiBRemoved 9 files due to unique sizes from list.2 files left.(DRYRUN MODE) Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.(DRYRUN MODE) Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.(DRYRUN MODE) Now eliminating candidates based on sha1 checksum:removed 0 files from list.2 files left.(DRYRUN MODE) It seems like you have 2 files that are not unique(DRYRUN MODE) Totally, 223 KiB can be reduced.(DRYRUN MODE) Now making results file results.txt
rdfind 命令還提供一些忽略空文件(-ignoreempty)和跟隨符號鏈接(-followsymlinks)之類的選項。下面詳細解釋它的常用選項。
這里需要我們注意一下,rdfind命令提供了使用 -deleteduplicates true
設置刪除重復文件的選項。顧名思義,使用這個選項它將自動刪重復的文件。
$ rdfind -deleteduplicates true ....Deleted 1 files.
當然,前提是我們也必須在系統上安裝 rdfind 命令。
fdupes
命令也可以很容易地識別重復文件,并提供了大量有用的選項。在最簡單的操作中,它會把重復文件放在一起,如下所示:
$ fdupes ~/home/alvin/UPGRADE/home/alvin/mytwin/home/alvin/lp.txt/home/alvin/lp.man/home/alvin/penguin.png/home/alvin/penguin0.png/home/alvin/hideme.png
-r
選項代表遞歸,表示它將在各個目錄下面使用遞歸的方式來查找重復文件。但是,Linux 下有許多重復文件是很重要的(比如用戶的 .bashrc 和 .profile 文件),如果被刪除將導致系統異常。
# fdupes -r /home/home/shark/home.html/home/shark/index.html/home/dory/.bashrc/home/eel/.bashrc/home/nemo/.profile/home/dory/.profile/home/shark/.profile/home/nemo/tryme/home/shs/tryme/home/shs/arrow.png/home/shs/PNGs/arrow.png/home/shs/11/files_11.zip/home/shs/ERIC/file_11.zip/home/shs/penguin0.jpg/home/shs/PNGs/penguin.jpg/home/shs/PNGs/penguin0.jpg/home/shs/Sandra_rotated.png/home/shs/PNGs/Sandra_rotated.png
fdupes 命令的常用選項如下表所示:
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
以上就是Linux怎么找到系統里的重復文件并快速釋放磁盤空間,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。