如何檢查2個目錄是否有相同的內容

如何檢查2個目錄是否有相同的內容

有什麼簡單的方法可以檢查兩個不同的目錄是否具有完全相同的內容?

答案1

findsha1sum和一系列管道的組合可以實現此目標:

find /path/to/files -type f -print0 | sort -z | xargs -0 sha1sum | cut -c1-40 | sha1sum

這將為您提供以下輸出:

98f3a7c54a8f51dd86506a26d4d3bd90e6e4b821  -

筆記:當然,後面的破折號可以忽略。

在您想要檢查的路徑上執行此命令,您將看到兩個目錄是否相同。如果不是,您可以開始編輯命令來尋找不同的檔案。一種簡單但耗時的方法是刪除| cut -c1-40 | sha1sum,它將列出每個檔案及其相應的 sha1 雜湊。

這是如何運作的?

  解釋
find /path/to/files /path/to/files傳回目錄中的項目列表
-type f 僅包含文件
-print0 在標準輸出上列印完整的檔案名,後面跟著一個空字符
| 進而
sort -z 對清單進行排序,使用 null 作為行分隔符號而不是換行符
| 進而
xargs -0 sha1sum 運行清單中的每個值sha1sum
| 進而
cut -c1-40 只是前 40 個字元(sha1 的長度
| 進而
sha1sum 產生 sha1 列表的 sha1 哈希值

相關內容