このページの内容

xxhsum(1) — xxHashの非暗号学的チェックサムを出力・検証する

書式

xxhsum [OPTION]... [FILE]...

xxhsum -b [OPTION]...

xxh32sumはxxhsum -H0と同等、 xxh64sumはxxhsum -H1と同等、 xxh128sumはxxhsum -H2と同等、 xxh3sumはxxhsum -H3と同等です。

説明

xxHashのチェックサム(32、64、128ビット)を出力・検証します。 FILEが指定されていない場合は、標準入力がコンソールでない限り、標準入力を読み取ります。 FILEが-の場合は、コンソールであっても標準入力を読み取ります。

xxhsumのコマンドライン構文はmd5sum(1)に似ていますが、同一ではありません。違いは次のとおりです。

  • xxhsumにはテキストモードの切り替え(-t)がありません。
  • xxhsumにはバイナリーモードの短い切り替えオプション(-b)がありません。
  • xxhsumはファイルを常にバイナリーファイルとして扱います。
  • xxhsumにはハッシュを選択するオプション(-H)があります。

xxHashは高速な非暗号学的チェックサムアルゴリズムなので、xxhsumをセキュリティ関連の用途に使うべきではありません。

xxhsum -bはベンチマークモードを起動します。詳しくは「オプション」と「例」を参照してください。

オプション

  • -HHASHTYPE: ハッシュを選択します。HASHTYPEは、0=XXH32、1=XXH64、2=XXH128、3=XXH3を意味します。 また、HASHTYPEには32=XXH32、64=XXH64、128=XXH128も指定できます。 デフォルト値は1(XXH64)です。

  • -sSEED、--seed SEED: ハッシュ処理とチェックサム検証に使うシードを、符号なしの10進数で設定します。 シードはチェックサムファイルに保存されないため、シード付きチェックサムを検証するときは同じ値を指定する必要があります。デフォルト値は0です。

  • --binary: 互換性のために受け付けます。xxhsumは常にバイナリーモードでファイルを読み取るので、このオプションは効果を持ちません。

  • --tag: BSD形式で出力します。

  • --little-endian: 16進数のチェックサム値の出力をリトルエンディアン形式にします。 デフォルトではビッグエンディアンで表示します。

  • -V、--version: xxhsumのバージョンを表示して終了します。

  • -h、--help: ヘルプを表示して終了します。

  • --: これ以降の引数をすべてファイル名として扱います。-で始まるファイル名に役立ちます。

高度なファイル入力オプション

  • --files-from、--filelist FILE: FILEからファイル名を読み取り、それらのハッシュを生成します。 FILEを指定しない場合や-を指定した場合は、stdinからファイル名を与えることもできます。 有効な形式は1行につき1つのファイル名で、内部に空白などを含めることができます。引用符やエスケープなどは必要ありません。 バイト0x5Cで始まる行では、ファイル名のエスケープ解除が有効になります。その後のバイト列0x5C 0x5C、0x5C 0x6E、0x5C 0x72は、それぞれ1バイトの0x5C、0x0A、0x0Dに変換されます。

チェックサム検証オプション

  • -c、--check FILE: FILEからxxHashのチェックサムを読み取り、検証します。

  • --strict: チェックサムが一致しない場合だけでなく、FILEに無効な行が1行でもあればエラーコードを返します。 この方針はデフォルトでは無効ですが、ファイル内に無効な行を検出した場合は、ユーザーインターフェースに情報メッセージを表示します。

  • -w、--warn: FILE内の形式が正しくない各行について、警告メッセージを出します。

  • -q、--quiet: 検証に成功したハッシュごとのOKを出力しません。ベンチマークモードでは、バージョンのヘッダーを表示しません。

  • --status: 何も出力しません。成功を示すステータスコードだけを生成します。

  • --ignore-missing: 存在しないファイルについて、失敗としたり、状態を報告したりしません。

ベンチマークオプション

  • -b: ベンチマークモードです。詳しくは「例」を参照してください。

  • -b#: テストするバリアントのIDを指定します。 カンマ「,」で区切って、複数のバリアントを選択できます。

  • -BBLOCKSIZE: ベンチマークモード(-b)でのみ有用です。詳しくは「例」を参照してください。 BLOCKSIZEは、ベンチマークモードのテストデータのブロックサイズをバイト数で指定します。接尾辞K、KB、KiB、M、MB、MiBを使用できます。 すべての接尾辞は1024の累乗を使います。K、KB、KiBは1024倍、M、MB、MiBは1048576倍です。 デフォルト値は102400です。

  • -iITERATIONS: ベンチマークモード(-b)でのみ有用です。詳しくは「例」を参照してください。 <ITERATIONS>は、ベンチマークの反復回数を指定します。1回の反復は約1000ミリ秒続きます。デフォルト値は3です。

終了ステータス

xxhsumは、成功した場合は0、少なくとも1つのファイルを読み取れなかった場合や、-cオプションで検証したチェックサムが一致しなかった場合は1で終了します。

例

指定したファイルのxxHash(64ビット)チェックサムを標準出力へ出力します。

$ xxhsum -H1 foo bar baz

指定したファイルのxxHash(32ビットと64ビット)チェックサムを標準出力へ出力し、xyz.xxh32とqux.xxh64へリダイレクトします。

$ xxhsum -H0 foo bar baz > xyz.xxh32
$ xxhsum -H1 foo bar baz > qux.xxh64

指定したファイルからxxHashのチェックサムを読み取り、検証します。

$ xxhsum -c xyz.xxh32 qux.xxh64

ファイルの一覧を作成し、その一覧にあるファイルのハッシュを生成します。

$ find . -type f -name '*.[ch]' > c-files.txt
$ xxhsum --files-from c-files.txt

中間ファイルを作らずに済むよう、標準入力からファイルの一覧を読み取ります。

$ find . -type f -name '*.[ch]' | xxhsum --files-from -

シェル展開、引数リストの長さ、ファイル名内の空白の扱いが明確であることなどの条件が許す場合は、次のようにして前の例と同じ出力を生成できます。

$ xxhsum `find . -name '*.[ch]'`

xxHashアルゴリズムをベンチマークします。 デフォルトでは、xxhsumは100 KBの合成サンプルを使ってxxHashの主要なバリアントをベンチマークし、結果を標準出力へ出力します。 第1列はアルゴリズム、第2列は元データのサイズ(バイト)、第3列は1秒あたりに生成したハッシュの数(スループット)、最後の列は速度を1秒あたりのメガバイト数に換算した値です。

$ xxhsum -b

次の例では、ハッシュ対象のサンプルを16384バイトに設定し、ベンチマーク対象のバリアントをIDで選択します。精度を高めるため、各ベンチマークテストを10回繰り返します。

$ xxhsum -b1,2,3 -i10 -B16384

バグ

バグの報告先:https://github.com/Cyan4973/xxHash/issues/

著者

Yann Collet

関連項目

md5sum(1)