Find
是否有工具或腳本可以通過僅比較文件大小和文件內容的一小部分來快速找到重複項?
在處理 jpg 或 h264 壓縮文件時,像 fdupes 這樣的工具是荒謬的。兩個具有完全相同文件大小的此類文件已經很好地表明它們是相同的。
比如說,除此之外,如果提取並比較了 16 個 16 字節的等距塊並且它們也是相同的,那將有大量證據讓我假設它們是相同的。有沒有類似的東西?
(順便說一下,我知道僅文件大小可能是一個相當不可靠的指標,因為可以選擇壓縮到某些目標大小,例如 1MB 或 1 CD/DVD。如果在許多文件上使用相同的目標大小,這是非常合理的一些不同的文件將具有完全相同的大小。)
GNU對你有
cmp
幫助嗎?
- 您可以使用該
-s
選項來抑制輸出並僅使用返回值- 它首先檢查文件大小以跳過對不同文件大小的任何比較
- 使用選項
-i
(跳過初始)和-n
(要比較的字節數),您可以另外定義要比較的字節範圍如果文件的數量對於每對文件來說都太大
cmp
,您可能希望首先sort
按文件大小排列所有文件,然後只比較大小相同的組(uniq -D
with-w
)。
在處理比較文件時,我常用的工具是使用
hash
. 例如:sha1sum -- * |sort >output_file
將創建雜湊並對它們進行排序,以便您可以在文件中看到重複項。
這使文件與前幾個字節相同的可信度要高得多。