Cksum (UNIX)

cksumコマンドについて



`cksum`コマンドは、Unix系オペレーティングシステムにおいて、ファイルの巡回冗長検査(CRC: Cyclic Redundancy Check)を計算するためのコマンドです。このコマンドは、Single UNIX Specification(IEEE Std 1003.1-2008)で定義されており、ファイルのデータが転送中や保存中に破損していないかを確認するために使用されます。名前は「check sum(検査合計)」に由来していますが、実際にはCRCアルゴリズムを利用してデータの信頼性を検証します。

CRC(巡回冗長検査)とは



巡回冗長検査(CRC)は、データ伝送やストレージにおけるエラー検出技術の一つです。CRCは、データに数学的な計算を施し、その結果を付加することで、データが破損していないかをチェックします。`cksum`コマンドは、このCRC値を算出することで、ファイルの内容が変更されていないかを確認します。

使用法



`cksum`コマンドは、通常、以下のように使用されます。

bash
cksum [ファイル名...]


  • - ファイル名: チェックサムを計算する対象のファイルを指定します。複数のファイルを指定することも可能です。
  • - ファイル名を指定しない場合、標準入力からデータを読み込み、そのチェックサムを計算します。

出力形式



`cksum`コマンドは、以下の形式で出力を行います。


[CRC値] [ファイルサイズ] [ファイル名]


  • - CRC値: ファイルの巡回冗長検査の値です。この値は、ファイルの内容に基づいて計算されます。
  • - ファイルサイズ: ファイルのバイト数です。
  • - ファイル名: チェックサムを計算したファイルの名前です(標準入力の場合は表示されません)。

CRCの計算に使用される多項式



`cksum`コマンドで使用されるCRCアルゴリズムは、国際標準化機構(ISO)と国際電気標準会議(IEC)が共同で策定したISO/IEC 8802-3:1996規格で定義されている多項式に基づいています。この多項式は、以下の通りです。

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

この多項式は、CRC-32アルゴリズムと呼ばれるもので、データの信頼性を高めるために広く使用されています。

実装例



`cksum`コマンドの実装は、様々なプロジェクトで利用されています。以下にいくつかの例を示します。

[GNU coreutilsのcksum実装
  • - [OpenBSD]]: OpenBSDプロジェクトでも独自の`cksum`コマンドの実装があり、こちらもC言語で記述されています。
[OpenBSDのcksum実装

注意点



`cksum`コマンドは、ファイルの内容が変更されたかどうかを検出するためのツールであり、ファイルの破損を修復する機能はありません。CRC値が異なる場合は、ファイルの内容が変更されている可能性があることを示唆します。しかし、CRCの値が同じだからといって、完全にファイルが一致しているとは限りません。非常にまれですが、異なるファイルで同じCRC値となる可能性も存在します。

参考資料




関連コマンド




外部リンク




このドキュメントは、`cksum`コマンドの基本的な使用法と、その背後にあるCRCアルゴリズムについて理解を深めることを目的としています。ファイルシステムの保全性を確認するために、`cksum`コマンドは重要な役割を果たします。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。