cksum コマンド

目的

ファイルのチェックサムとバイト・カウントを表示します。

構文

cksumFile ... ]

説明

cksum コマンドは、File パラメーターで指定されたファイルを読み取り、ファイルごとに 32 ビット・チェックサムの巡回冗長検査 (CRC) とバイト・カウントを計算します。ファイルを指定しなければ、cksum コマンドは標準入力を読み取ります。チェックサム、バイト数、およびファイル名は、標準出力に書き出されます。 標準入力を使う場合は、パス名と先行スペースを省略します。

cksum コマンドを使って、ノイズの多い送信回線を通してコピーまたは通信された可能性のあるファイルを、トラステッド・ファイルの絶対コピーと比較することができます。cksum コマンドによる比較では安全な暗号化がなされない場合もあります。しかし、偶然に損傷を受けたファイルが元のファイルと同じチェックサムになることは通常はありません。

cksum コマンドは、sum コマンドとは異なるアルゴリズムを使って、32 ビット・チェックサム CRC を計算します。 cksum コマンドでは、イーサネット標フレーム検査に基づく CRC アルゴリズムが使われます。

注: cksum コマンドは、POSIX 1003.2 に準拠しており、チェックサムの生成結果は、すべての POSIX 1003.2 準拠システムでも同じ結果が得られることが保証されています。

以下の生成多項式は、CRC チェックサム計算方法を定義します。

G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

以下の手順では、所定のファイルに対応する CRC 値を数学的に定義します。

  1. n ビットが評価されると、次数 n -1 の mod 2 多項式 M(x) の係数と見なされます。これらの n ビットは、ファイルからのビットです。最上位ビットは、ファイルの最初の 8 進数の最上位ビットです。最後のビットは最後の 8 進数の最下位ビットであり、8 進の整数にするためにゼロ・ビットがパッドされ (必要な場合)、後ろにファイル長を 2 進数として表す 1 つ以上の 8 進数が最下位の 8 進数から順に付いています。この整数を表す 8 進の最小数が使用されます。
  2. M(x) に x32 を掛ける乗算が行われ (つまり、 左に 32 ビット分シフトされ)、mod 2 除算を使用して G(x) で除算され、 次数 31 の剰余 R(x) が導かれます。
  3. 係数 R(x) は 32 ビット・シーケンスであると見なされます。
  4. ビット・シーケンスの補数を取り、この結果が CRC となります。

終了状況

このコマンドは、以下の終了値を返します。

項目 説明
0 すべてのファイルが正常に処理されました。
>0 エラーが発生しました。

file1file2 のチェックサムとサイズをバイト単位で表示するには、以下のように入力します。

cksum file1 file2

file1 のチェックサムが 39954321871390 バイトであり、file2 のチェックサムが 326692783320912 バイトである場合、cksum コマンドは以下のように表示します。

3995432187       1390    file1
3266927833       20912   file2

ファイル

項目 説明
/usr/bin/cksum cksum コマンドが入っています。