名前 | 形式 | 機能説明 | オペランド | 使用法 | 環境 | 終了ステータス | 属性 | 関連項目
cksum [file]...
cksum コマンドは、各入力ファイルの循環冗長性検査 (CRC) を算出し、その結果を各ファイルのオクテット数と共に標準出力に書き込みます。
正常に処理された各ファイルについて cksum は次の書式でチェックサム情報を出力します。
"%u %d %s\n" <チェックサム>, <オクテット数>, <パス名>
file オペランドが指定されていない場合、パス名とその前の空白は省略されます。
使用される CRC は、参照されるイーサネット標準における CRC エラーチェックで使用される多項式に基づいています。
CRC チェックサムのコード化は、生成多項式によって定義されます。
G (x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
指定したファイルに対応する CRC 値は、数学的には次の手順で定義されます。
評価される n ビットは、2 を法とした n-1 次多項式 M(x) の係数と見なされます。これらの n ビットは、ファイル内のビットに対応し、最上位ビットはファイルの先頭のオクテットの最上位ビットであり、最後のビットはファイルの最後のオクテットの最下位ビットです。これらの n ビットには、オクテットの数が整数になるように、(必要であれば) 0 のビットが埋め込まれ、その後にファイルの長さを表す 1 つまたは複数のオクテットが、最下位オクテットを先頭にして 2 進数で続きます。この整数を表すことができる最小のオクテット数が使用されます。
M(x) の値は、x 32 で乗算されて (つまり、32 ビット左にシフト)、2 を法とした除算を使用して G(x) で除算されます。結果として、次数 ≤ 31 の除余 R(x) が生成されます。
R(x) の係数は、32 ビットのシーケンスとみなされます。
ビットシーケンスの補数がとられ、その結果が CRC になります。
cksum コマンドは通常、疑いのあるファイルを同じファイルの信頼できるバージョンと簡単に比較して、ノイズの多い媒体を介して送信されたファイルが正しく受信できたかどうかを確認するのに使用します。ただし、この比較は、暗号化した場合ほど安全ではありません。損傷を受けたファイルが、元のファイルと同じ CRC を生成する確率は天文学的低い値です。ただし、意図的に同じ CRC を生成することは困難ではありますが、不可能ではありません。
cksum の入力ファイルはどんなタイプでもかまいませんが、文字型特殊デバイスファイルでは期待通りの結果が得られないことがあります。本書では、入力時に使用されるブロックサイズを規定していないため、文字型特殊ファイルのチェックサムでは、これらのファイル内のデータがすべて処理されるとはかぎりません。
アルゴリズムは、オクテット単位に分割されたビットストリームで表現されます。ファイルが 2 つのシステム間で送信されるときに、何らかのデータ変換 (8 ビット文字を 9 ビットバイトに移行したり、「リトルエンディアン」のバイト順序を「ビッグエンディアン」に変更するなど) が行われる場合、同じ CRC 値を得ることは期待できません。このような変換を実行する実装では、cksum を拡張して、そのような状況に対処していきます。
2G バイト (231 バイト) 以上のファイルを検出した場合の cksum の動作については、largefile(5) のマニュアルページを参照してください。
cksum の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWcsu |
インタフェースの安定性 |
標準 |