在兩台 Linux 機器之間查找重複資料檔案的最佳方法?

在兩台 Linux 機器之間查找重複資料檔案的最佳方法?

我家裡有兩個 Debian 盒子,裡面有各種照片、音訊、影片和其他資料檔案。它們都雜亂無章,我想整理它們並刪除它們之間的重複檔案。兩者都沒有太多邏輯資料夾結構。

是否有捷徑可尋?

答案1

有很多變體。我認為 md5 是正確的,但使用 SHA 和可能會稍微好一些。 SHA1 可能具有相似的速度並且不太可能發生碰撞 - 儘管無論哪種方式發生碰撞的機會都是無限小的)。

我會按照以下方式做一些事情 -

  1. 在每個框中建立一個文件列表及其 sha1 和,使用以下命令

尋找/path/to/files -type f -exec sha1sum {} + > pcX-sha1.lst

  1. 然後我將這兩個檔案複製到 1 個盒子中。完成此操作後,我會找到一個 sha 校驗和列表,僅顯示重複的檔案。一旦檔案位於同一目錄中,就像

剪 -f1 -d" " pcX-sha1.lst pcY-sha1.lst |排序| uniq -d > 重複shas.lst

最後一個清單是查找重複文件,您可以使用類似命令來執行此操作

對於 $(catplicatedshas.lst) 中的每個;執行 grep $each pcX-sha1.lst;完畢

上面將列出從 pcX-sha1.lst 中找到的檔案及其名稱。當然,您可以使用其中一個檔案(如果您想查看兩個位置的檔案位置以及它們是否具有不同的檔案名,則可以使用兩個檔案)。

相關內容