2
如何設計算法來列出文件系統中的所有重複文件?我首先想到它使用哈希,但我想知道是否有更好的方法來做到這一點。要記住任何可能的設計權衡?列出給定根目錄的文件系統中的所有重複文件。
如何設計算法來列出文件系統中的所有重複文件?我首先想到它使用哈希,但我想知道是否有更好的方法來做到這一點。要記住任何可能的設計權衡?列出給定根目錄的文件系統中的所有重複文件。
散列所有文件將需要很長時間,因爲您必須讀取所有文件內容。
我推薦的3步算法:
你也可以不做哈希,如果可能的話同時打開所有文件,並比較內容。這將節省對大文件的多次讀取。根據你的數據類型,你可以實現很多調整來節省時間(例如:如果2個壓縮/ tar文件具有相同大小> x Ggigabytes大小(並且名稱相同),則不要讀取內容,考慮到你的過程,文件很可能是重複的)
這樣,你可以避免散列大小在系統中唯一的文件。節省很多時間。
注意:這裏沒有考慮名稱,因爲我想名稱可能不同。
編輯:我已經做了一些研究(太遲),並發現fdupes
似乎恰恰如此,如果你正在使用的Un * X-like系統:
按名稱或內容重複? –