我已經使用find命令並創建了一個名爲Duplicates.txt的文件,其中包含一堆圖像的md5sums。從文本文件中選擇md5sums並刪除Linux中的重複項
我該如何去查找文件中的重複md5,然後使用它們從存檔中刪除重複項?
編輯:我不能使用fdupes。
我已經使用find命令並創建了一個名爲Duplicates.txt的文件,其中包含一堆圖像的md5sums。從文本文件中選擇md5sums並刪除Linux中的重複項
我該如何去查找文件中的重複md5,然後使用它們從存檔中刪除重複項?
編輯:我不能使用fdupes。
假設你在類似這樣的方式進行文件Duplicates
:
find ./dupimgs -type f -print0 | xargs -0 sha1sum > dupes.txt
然後,你可以很容易地提取與這一個班輪獨特的文件:
sort dupes.txt | uniq --check-chars=40 --count | cut -d' ' -f 10
這些是你想要保留的文件。我建議在另一個目錄中移動它們,然後刪除,現在是完全拷貝的目錄:
sort dupes.txt | uniq --check-chars=40 --count | cut -d' ' -f 10 | xargs -I {} mv {} ./originals
rm -rf ./dupimgs
備註:我以前sha1sum
而非md5sum
。這意味着摘要的長度會有所不同。對於sha1sum
它是40個字符。對於md5sum
,it's 32 hexadecimal digits。因此,您需要在上述命令中更改40
以匹配您使用的哈希函數返回的十六進制字符串的長度。
'md5sum [文件名] | awk'x [$ 1] ++''給出了重複列表(但每個重複列表的第一次出現都被排除在外)。 – 4ae1e1
另一種方法是使用掃描目錄並找到重複文件(如'fdupes')的程序 - 這裏有一個大列表(https://askubuntu.com/questions/3865/how-to-find-和刪除重複文件)的替代品,如果你需要它們。 – Wilf
檢查'fdupes'程序。 –