コマンドを使用すると、md5sum
各行のハッシュとパスを含むテキストファイルを取得し、単一のコマンドでファイル全体のリストを確認できます。たとえば、sha1sum
テキストファイルはループや他の手段によって簡単に生成されます。sha256sum
sha1sum -c mydir.txt
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
答え1
RHashをお試しください
努力するRハッシュ。
はい
$ echo -n a > a.txt; echo -n b > b.txt; echo -n c > c.txt
✔
$ rhash --crc32 --simple *.txt > checksums.crc32
✔
$ cat checksums.crc32
e8b7be43 a.txt
71beeff9 b.txt
06b9df6f c.txt
✔
$ rhash --crc32 --check checksums.crc32
--( Verifying checksums.crc32 )-------------------------------------------------
a.txt OK
b.txt OK
c.txt OK
--------------------------------------------------------------------------------
Everything OK
✔
注 1:--簡単な形式
書式設定オプションを使用しない場合、--simple
rhash はデフォルトで別の書式を使用します。これはあなたが望むものではないかもしれません:
$ rhash --crc32 *.txt
; Generated by RHash v1.3.7 on 2020-06-03 at 16:02.51
; Written by Kravchenko Aleksey (Akademgorodok) - http://rhash.sf.net/
;
; 1 15:58.36 2020-06-03 a.txt
; 1 15:58.36 2020-06-03 b.txt
; 1 15:58.36 2020-06-03 c.txt
a.txt E8B7BE43
b.txt 71BEEFF9
c.txt 06B9DF6F
✔
注2:--allオプション
狂気にしたい場合は試してください。--all
オプションサポートされているすべてのハッシュを一度に取得します。
答え2
このユーティリティには同様のオプションは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
と各行について繰り返されます。
- 読み出し行からファイル名を検索する
- CRC32の計算
- 計算された値をファイルの値と比較する
- 結果の印刷