Deduplication
在Linux中檢查相同文件並根據位置刪除
我使用 fdupes 來查找和刪除相同的文件。
但我想能夠說這樣的話……
- 查找目錄 A 或其子目錄中所有重複的文件
- 如果子目錄 B 和 C 中有重複文件,則始終刪除 B 中的文件
換句話說,將所有不在 B 中的文件保留在 C 中。請注意,目錄結構不相同,因此 rsync 在這裡沒有用。
我認為 fdupes 不提供此功能。我必須為每對手動選擇要刪除/保留的內容。
所以我想寫一個快速的 Python 腳本來做同樣的事情。但是有沒有我可以從 Python 呼叫的快速系統命令,它可以為每個文件提供某種唯一 id,這是查看兩個文件是否相同的可靠方法。我正在考慮一些不涉及我將文件載入到 python 並散列它們的內容的東西。
不,雜湊是了解多個文件是否匹配的唯一快速方法,但您可以通過僅比較相同大小的文件來加快速度,如果沒有人嘗試衝突,也可以選擇像 md5 這樣的快速雜湊……這是用 git/zfs/etc 為你完成
要不就
fdupes -r A B | grep B | xargs -I {} rm "{}"