如何在Unix系統中查詢重複檔案?
引言
隨著我們越來越依賴數字媒體來儲存重要檔案,我們往往會隨著時間的推移積累大量檔案。管理這些檔案可能具有挑戰性,尤其是在我們擁有多個相同檔案的副本時,這些副本會佔用儲存空間。為了解決這個問題,Unix提供了幾種查詢和刪除重複檔案的方法,從而節省我們的時間和磁碟空間。
在本文中,我們將探討在Unix中查詢重複檔案的各種方法,並演示可用於每種方法的終端命令。透過這些不同的方法,我們可以根據需要管理的資料型別和數量,選擇最適合我們需求和偏好的方法。
使用fdupes查詢重複檔案
這是一個終端工具,允許我們遞迴地在目錄樹中查詢重複檔案。該工具在大多數類Unix系統上可用。
開啟終端視窗並導航到要掃描重複檔案的目錄:
$ cd Desktop/duplicate
然後,鍵入命令執行fdupes並查詢重複檔案:
fdupes -r .
-r選項告訴fdupes反覆掃描當前目錄及其子目錄。“.”將當前目錄定義為搜尋的起點。執行命令後,fdupes將檢視目錄樹中的所有檔案,並返回相同檔案的列表。
./folder2/hello.txt ./folder1/hello.txt ./folder3/hello.txt
使用jdupes查詢重複檔案
這是一個命令列工具,用於識別和管理重複檔案。它根據名稱、大小、修改時間和內容等各種標準比較檔案,即使檔名稱不同或位於不同的目錄中,也能識別重複檔案。jdupes是fdupes工具的更高階版本。
要在終端中使用它,請鍵入以下命令:
$ jdupes -r .
這裡,-r選項指示jdupes掃描當前目錄及其子目錄。“.”在本例中由“.”大小定義為起點。執行命令後,它將掃描目錄中的所有檔案,只打印相同的檔案。
Scanning: 9 files, 4 items (in 1 specified) ** scanning files ** ./folder1/hello.txt ./folder2/hello.txt ./folder3/hello.txt
使用Awk工具查詢重複檔案
名為“awk”的實用程式是一個非常強大的工具,可以查詢相同的檔案。我們可以用它快速掃描目錄結構,查詢具有相似名稱的檔案,並顯示它們及其路徑。
$ awk -F'/' '{
f = $NF
arr[f] = f in arr? arr[f] RS $0 : $0
bb[f]++ }
END{for(x in bb)
if(bb[x]>1)
printf "Name of duplicate files: %s
% s
", x,arr[x] }'<(find . -type f)
此指令碼使用正斜槓作為分隔符掃描每個檔案路徑,使用$NF獲取檔名,並測試它是否存在於“arr”中。如果存在,則新增路徑,“bb”集合計算每個檔名出現的次數。
Name of duplicate files: unique.txt ./folder2/unique.txt ./folder1/unique.txt ./folder3/unique.txt Name of duplicate files: hello.txt ./folder2/hello.txt ./folder1/hello.txt ./folder3/hello.txt
使用Awk按大小查詢重複檔案
我們還可以使用此awk實用程式查詢大小相同的檔案,因為重複檔案的大小相同。
$ awk '{
fsize = $1
fpath[fsize] = fsize in fpath ? fpath[fsize] RS $2 : $2
count[fsize]++
}
END{for(size in count)
if(count[size]>1)
printf "Using the awk to find Duplicate files by size: %d bytes
%s
",size,fpath[size] }' <(find . -type f -exec du -b {} +)
這將獲取每個檔案的大小並將其儲存在“fsize”變數中。如果此大小已出現在“fpath”陣列中,它會將當前檔案路徑附加到現有路徑集合中。count陣列記錄每個檔案大小出現的次數。最後的命令迴圈遍歷count陣列並列印相同檔案的名稱。
Using the awk to find Duplicate files by size: 13 bytes ./folder2/unique.txt ./folder3/unique.txt ** many more duplicate files** Using the awk to find Duplicate files by size: 20 bytes ./folder2/hello.txt ./folder1/hello.txt ./folder3/hello.txt
結論
從本文中,我們瞭解到Unix作業系統提供了多種有效的方法來查詢和刪除重複檔案,例如使用fdupes、jdupes、awk和find命令等命令列工具。透過使用這些方法,我們可以有效地管理我們的檔案並節省寶貴的磁碟空間。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP