Shell-Script

希望使用目錄中文件的雜湊值比較兩個不同的目錄

  • May 12, 2022

通過檢查每個目錄中所有文件之間的雜湊值來比較兩個目錄,並使用 sha256 雜湊值確定兩個目錄是否相互 ==

hash您可以使用帶有以下命令的函式來比較兩個目錄:

cd dir1; sha256sum * >../hash_file
cd ../dir2; sha256sum -c ../hash_file >/dev/null 2>&1
EXITCODE=$?

退出程式碼 0 表示目錄中的文件是相同的。如果您有子目錄,這可能效果不佳

如果您想遞歸地將目錄中每個文件的內容包含在單個雜湊中,您可以使用它find來查找所有普通文件,並 execcat將它們連接起來,然後通過管道sha256sum將其保存到文件中,如下所示:

find dir1 -type f -exec cat '{}' + | sha256sum > hash1
find dir2 -type f -exec cat '{}' + | sha256sum > hash2
diff -q hash1 hash2

引用自:https://unix.stackexchange.com/questions/702311