連載
» 2017年03月10日 05時00分 UPDATE

Linux基本コマンドTips(93):【 od 】コマンド――ファイルを8進数や16進数でダンプする

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「od」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルを8進数や16進数でダンプする「od」コマンドです。

odコマンドとは?

 「od」は、ファイルを8進数や16進数などでダンプする際に使用するコマンドです。「ダンプ(dump)」は記録などの中身をまとめて表示したり、記録したりするという意味で、odコマンドの場合はバイナリファイルを8進数や16進数などで表示します。



odコマンドの書式

od [オプション] ファイル

※[ ]は省略可能な引数を示しています




odコマンドの主なオプション

 odコマンドの主なオプションは次の通りです。

●通常のオプション
短いオプション 長いオプション 意味
-A 指定 --address-radix=指定 ファイルオフセット(出力位置)の表示形式を「o(8進数)」「x(16進数)」「d(10進数)」で指定する
-j バイト数 --skip-bytes=バイト数 先頭からスキップするバイト数を指定する(「-j100」で先頭の100バイトを飛ばして表示)
-N バイト数 --read-bytes=バイト数 表示するバイト数を指定する(「-N80」で先頭の80バイト、「-j100 -N80」で101バイト目から80バイト分を表示)
-S バイト数 --strings=バイト数 可読文字(印字可能な文字)が指定したバイト数分連続していたら、その箇所を表示する(「-S 4」で「strings」コマンド相当)
-t タイプ --format=タイプ 出力フォーマットを指定する(※次表参照)
-v --output-duplicates 「*」マークによる出力行の省略をやめる
-wバイト数 --width=バイト数 1行当たりの出力バイト数を指定する

【※】「-w」を除く短いオプションで「-j100」は「-j 100」のように空白あり/なしどちらも使用可能



 「出力フォーマット」は、「-t a」(文字名)や「-t o1」(整数1つ分を8進数で表示)のように指定します。「a」と「c」以外は、サイズを数値または文字で指定可能です。

●出力フォーマット
タイプ 意味(古いオプション形式)
a 文字名。最上位ビットは無視される(「-a」で「-t a」相当)
c ASCII文字または「\」エスケープ文字(「-c」で「-t c」相当)
d 符号付き10進数(「-i」で「-t dI」、「-l」で「-t dL」相当)
f 浮動小数点(「-f」で「-t fF」相当)
o 8進数(「-b」で「-t o1」、「-o」で「-t o2」相当)
u 符号なし10進数(「-d」で「-t u2」相当)
x 16進数(「-x」で「-t x2」相当)

【※】サイズは「整数(integer)幾つ分か」を数値で指定する他、「S(short)」「I(int)」「sizeoL(long)」「f(浮動小数点)」の場合は「F(float)」「D(double)」「L(long double)」が指定可能





バイナリファイルをダンプする

 「od ファイル名」で、指定したファイルを8進数でダンプします。

 出力形式は「-t」オプションで変更できます。また、デフォルトの出力では、各行の先頭に表示位置が8進数で表示されており、表示位置の形式は「-A」オプションで変更できます。どちらも16進数にする場合は、「-Ax -tx」のように指定します。

コマンド実行例

od ファイル名

(ファイルを8進数でダンプする)(画面1

od -Ad -tx ファイル名

(表示位置と内容をともに16進数にする)(画面2


画面1 画面1 画像ファイル(JPGファイル)を8進数でダンプした
画面2 画面2 ダンプ結果の表示位置と内容を16進数にした


表示する範囲を指定する

 ダンプするのがファイルの先頭部分だけでよい場合は、「-Nバイト数」を指定します。また、先頭部分を読み飛ばしたい場合は、「-jバイト数」を指定します。

コマンド実行例

od -N80 ファイル名

(先頭から80バイト分表示する)

od -j100 -N80 ファイル名

(100バイトスキップして80バイト分表示する)(画面3


画面3 画面3 100バイトスキップして80バイト分表示した(=101バイト目から180バイト目までを表示した)


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。