RHashをお試しください

RHashをお試しください

コマンドを使用すると、md5sum各行のハッシュとパスを含むテキストファイルを取得し、単一のコマンドでファイル全体のリストを確認できます。たとえば、sha1sumテキストファイルはループや他の手段によって簡単に生成されます。sha256sumsha1sum -c mydir.txtfind

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:--簡単な形式

書式設定オプションを使用しない場合、--simplerhash はデフォルトで別の書式を使用します。これはあなたが望むものではないかもしれません:

$ 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ありません。ただし、確認はスクリプトで実行できます。-csha1sum

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の計算
  • 計算された値をファイルの値と比較する
  • 結果の印刷

関連情報