概要
sumコマンドは、指定されたファイルのチェックサムとブロック数を計算して標準出力に出力します。これらの値は、ファイルの内容が変更されたかどうかを素早く確認するために使用できます。デフォルトでは、BSD互換モードで512バイトブロックを使用して計算します。
主な特徴
- ファイルの16ビットチェックサムの計算
- ファイルのブロック数の計算(デフォルトは512バイトまたは1KB)
- 簡単なファイル整合性チェックと変更有無の確認
- BSDおよびSystem V互換モードのサポート
主なオプション
sumコマンドは、チェックサムの計算方法を変更するいくつかのオプションを提供します。
チェックサムモード
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`sum` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
sumコマンドを使用して、ファイルのチェックサムとブロック数を計算する様々な方法を学びます。
基本チェックサム計算(BSDモード)
echo 'Hello World' > testfile.txt
sum testfile.txt
ファイルの基本(BSD)チェックサムとブロック数を計算します。(testfile.txtを作成してから実行)
System Vモードチェックサム計算
sum -s testfile.txt
System V互換モードでファイルのチェックサムとブロック数を計算します。
複数ファイルのチェックサム計算
echo 'Another file' > anotherfile.txt
sum testfile.txt anotherfile.txt
複数のファイルに対して同時にチェックサムを計算します。
標準入力からのチェックサム計算
echo 'Data from stdin' | sum
パイプを介して標準入力に渡されたデータのチェックサムを計算します。
ヒントと注意点
sumコマンドは簡単な用途に適していますが、現代的なファイル整合性チェックにはより強力なツールを使用することをお勧めします。
セキュリティ上の警告
sumが生成する16ビットチェックサムは、衝突(collision)が発生する可能性が高いです。つまり、内容が異なる2つのファイルが同じチェックサムを持つ可能性があります。したがって、重要なデータの整合性検証には適していません。
- 低いセキュリティ: 16ビットチェックサムは衝突に弱く、悪意のある変更を検出するのが困難です。
- 限定的な用途: 主に開発中のファイルの変更有無を素早く確認するなど、非セキュリティ用途で使用されます。
代替コマンド
より強力で安全なファイル整合性チェックのためには、以下のコマンドを使用することをお勧めします。
- md5sum: MD5ハッシュを計算します。(32桁の16進数)
- sha1sum: SHA-1ハッシュを計算します。(40桁の16進数)
- sha256sum: SHA-256ハッシュを計算します。(64桁の16進数)
- cksum: CRC32チェックサムを計算します。sumよりも強力ですが、md5/sha系よりは弱いです。
ブロックサイズの理解
sumコマンドのブロック数は、ファイルサイズをブロックサイズで割った値です。BSDモードは512バイト、System Vモードは1024バイト(1KB)を基準とします。
- BSDブロック: 512バイト(デフォルト)
- System Vブロック: 1024バイト(1KB)