
各ディレクトリ内のすべてのファイル間のハッシュを確認して2つのディレクトリを比較し、sha256ハッシュを使用して2つのディレクトリが互いに==互いであることを確認します。
答え1
hash
関数とコマンドを使用して両方のディレクトリを比較できます。たとえば、次のようになります。
cd dir1; sha256sum * >../hash_file
cd ../dir2; sha256sum -c ../hash_file >/dev/null 2>&1
EXITCODE=$?
終了コード0は、ディレクトリ内のファイルが同じであることを意味します。サブディレクトリがあると、正しく機能しない可能性があります。
答え2
ディレクトリ内の各ファイルの内容を単一のハッシュに繰り返し含めるには、find
すべての一般的なファイルを見つけてcat
execを使用して接続してパイプし、sha256sum
次のようにファイルに保存できます。
find dir1 -type f -exec cat '{}' + | sha256sum > hash1
find dir2 -type f -exec cat '{}' + | sha256sum > hash2
diff -q hash1 hash2