画像ファイルの先頭情報を確認したり、フォーマットが不明なファイルを調べる場合など、バイナリファイルの中身を確認する方法。 テキストファイルの改行コード確認にも使用できます。
hexdumpコマンド
hexdumpコマンドは、バイナリファイルの中身を16進数やASCIIで表示するコマンドで、以下のようになります。
hexdump [オプション] [ファイルパス]
-
表示するオフセット、サイズの指定
hexdumpコマンドでは、表示するオフセット(開始位置)やサイズを指定しないと、ファイルの全データが表示されまいます。 一部だけ表示したい場合は、"-s"オプションでオフセット、"-n"オプションでサイズを指定します。
例 先頭から16バイトだけ表示する場合
$ hexdump -n 16 sakura01.jpg 0000000 d8ff e0ff 1000 464a 4649 0100 0101 4800 0000010
例 先頭8バイトから16バイトだけ表示する場合
$ hexdump -s 8 -n 16 sakura01.jpg 0000008 4649 0100 0101 4800 4800 0000 e1ff 4643 0000018
16進数 + ASCII表示
バイナリファイルの表示で最も一般的な 16進数 + ASCII 表示は、オプション"-C"を指定します。
hexdump -C [ファイルパス]ただし、"-C"だけだと全ての中身を表示するので、表示したい範囲を指定する場合は、表示オフセットを指定する"-n"オプションや、 表示サイズを指定する"-s"オプションと組み合わせて使用します。
例 画像ファイル(jpeg)の先頭100バイトを表示
$ hexdump -C sakura01.jpg -n 100 00000000 ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 48 |......JFIF.....H| 00000010 00 48 00 00 ff e1 43 46 45 78 69 66 00 00 49 49 |.H....CFExif..II| 00000020 2a 00 08 00 00 00 0a 00 0f 01 02 00 0a 00 00 00 |*...............| 00000030 86 00 00 00 10 01 02 00 08 00 00 00 90 00 00 00 |................| 00000040 12 01 03 00 01 00 00 00 01 00 00 00 1a 01 05 00 |................| 00000050 01 00 00 00 98 00 00 00 1b 01 05 00 01 00 00 00 |................| 00000060 a0 00 00 00 |....| 00000064
参考 hexdumpは、テキストファイルの改行コード確認にも使用できます。