コマンドmd5sum
、sha1sum
、sha256sum
を使用すると、ハッシュと1行あたりのパスを含むテキストファイルを取得し、sha1sum -c mydir.txt
のように1つのコマンドでファイルのリスト全体を確認できます。 (上記のテキストファイルは、find
などのループで簡単に作成できます。)
CRC/CRC32ハッシュのリストで同じことを行う方法はありますか?
このようなハッシュは、多くの場合、Zip自体や7zなどのZipのようなアーカイブ内に保存されます。例えば:
$ unzip -v archive.Zip
Archive: archive.Zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
8617812 Stored 8617812 0% 12-03-2015 15:20 13fda20b 0001.tif
または:
$ 7z l -slt archive.7z
Path = filename
Size = 8548096
Packed Size =
Modified = 2015-12-03 14:20:20
Attributes = A_ -rw-r--r--
CRC = B2F761E3
Encrypted = -
Method = LZMA2:24
Block = 0
crc32
ユーティリティには、-c
のsha1sum
のようなオプションはありません。それでも、検証はスクリプトで実行できます。
Sha1sumが値を出力するのと同じ形式でcrc32値をファイルに保存したとしましょう。
a8374911 *file1.ext
32c5188e *file2
6592d5e5 *bflmpsvz
Crc32は、bashスクリプトを介して確認できます。
while read line
do
name=${line#* \*}
crc32=`crc32 "$name"`
echo -n "$name: "
if [ "${line% \**}" == "$crc32" ]
then
echo OK
else
echo FAILED
fi
done < file_with_crc32
スクリプトは、sha1sum -c
と同じ出力を提供します。ファイルfile_with_crc32
のすべての行と各行を繰り返し処理します