od コマンド

目的

ファイルを指定されたフォーマットで表示します。

構文

タイプの文字列を使用してファイルを表示し、出力をフォーマットする

od-v ] [  -A AddressBase ] [  -N Count ] [  -j Skip ] [  -t TypeString ... ] [ File ... ]

フラグを使用してファイルを表示し、出力をフォーマットする

od-a ] [  -b ] [  -c ] [  -C ] [  -d ] [  -D ] [  -e ] [  -f ] [  -F ] [  -h ] [  -H ] [  -i ] [  -I ] [  -l ] [  -L ] [  -o ] [  -O ] [  -p ] [  -P ] [  -s ] [  -v ] [  -x ] [  -X ] [ [  -S ] ] [  -w ] ] [ File ] [ [ Offset] [ Label ] ] [ File ... ]

説明

od コマンドは File パラメーターで指定されたファイルを指定されたフォーマットで表示します。 File パラメーターを指定しないと、od コマンドは標準入力を読みます。 -bcCDdFfOoSstvXx の各オプションを複数使用することで、複数のタイプを指定できます。

最初の構文フォーマットの場合、出力フォーマットは -t フラグで指定します。 フォーマットのタイプを指定しない場合は、-t o2 がデフォルトとして使用されます。

2 番目の構文フォーマットの場合、出力フォーマットはフラグを組み合わせて指定します。 Offset パラメーターは、ファイル出力を開始するファイル内の位置を指定します。 デフォルトでは、Offset パラメーターは 8 進のバイトとして解釈されます。 . (ドット) 接尾部を付加した場合、パラメーターは 10 進数として解釈されます。 パラメーターの先頭が x または 0x で始まる場合は、16 進数として解釈されます。b 接尾部をパラメーターに付加した場合、512 バイトのブロックとして解釈されます。 B 接尾部をパラメーターに付加した場合、1024 バイトのブロックとして解釈されます。

Label パラメーターは最初に表示されたバイトの疑似アドレスとして解釈されます。 使用する場合は、Offset パラメーターの後に ( ) (小括弧) で囲んで指定します。 接尾部の意味は Offset パラメーターの場合と同じです。

od コマンドが標準入力を読む場合は、Offset パラメーターと Label パラメーターの前に + (プラス記号) を付けなくてはなりません。

LANGLC_ALL などの環境変数を設定すると、od コマンドの作用に影響します。

od コマンドは、各入力ファイルを順次にコピーし、それらを標準出力に書き込み、-t フラグを使用して指定された出力のタイプに従って入力データを変換します。 入力データ内のデフォルト・バイト数は、型指定子文字 d、o、u、または x のサイズに対応します。 これらの型指定子文字により、C プログラミング言語のデータ型 charshortint、および long のバイト数に対応する、入力データ内のバイト数 (オプション) を指定できます。 バイト数はアプリケーション (任意のプログラム、または od コマンドを使用するユース・ケース) を使用して指定することもできます。 文字 Cchar データ型、文字 Sshort データ型、文字 Iint データ型、文字 Llong データ型に使用します。 型指定子文字では、値 1、2、4、および 8 がサポートされています。 これは、C プログラミング言語のデータ型が入力データのサイズに指定されない場合でも同様です。 型指定子文字では、C プログラミング言語の long long データ型のような 10 進数もサポートされます。

フラグ

最初のフォーマットのフラグは以下のとおりです。

項目 説明
-A AddressBase 入力オフセット・ベースを指定します。AddressBase 変数には以下の文字の 1 つを指定します。
d
オフセット・ベースを 10 進数で書きます。
o
オフセット・ベースを 8 進数で書きます。
x
オフセット・ベースを 16 進数で書きます。
n
オフセット・ベースを表示しません。

-A n が指定されている場合を除き、出力行の前には、次に書き込まれるバイトの入力オフセット (入力ファイル間で累積されます) があります。さらに、 書き込まれた最後のバイトの後のバイトのオフセットは、すべての入力データが処理された後に表示されます。 -A address_base オプションおよび [offset_string] オペランドを指定しないと、入力オフセット・ベースは 8 進数で表示されます。

-j Skip

出力を表示する前に Skip 変数によって指定されたバイト数をスキップします。 複数のファイルを指定する場合、od コマンドは出力を表示する前に連結した入力ファイルの指定バイト数をスキップします。 結合された入力が、少なくともスキップ・バイトの長さがない場合は、od コマンドは診断メッセージを標準エラーに書き込み、ゼロ以外の状況で終了します。

デフォルトでは、Skip 変数の値は 10 進数として解釈されます。先頭に 0x または 0X がある場合、オフセットは 16 進数として解釈され、先頭に 0 がある場合は、オフセットは 8 進数として解釈されます。 Skip 変数の値に文字 bkm を付加した場合、オフセットは Skip 変数の値 (バイト) にそれぞれ 512、1024、1024*1024 を掛けた値となります。

-N Count Count 変数で指定した入力バイト数までをフォーマットします。 デフォルトでは、Count 変数の値は 10 進数として解釈されます。 先頭に 0x または 0X がある場合は、16 進数として解釈されます。 先頭に 0 がある場合は、8 進数として解釈されます。 表示されるアドレスのベースは、Count オプションの引数のベースで暗黙指定されません。
-t TypeString 出力タイプを指定します。TypeString 変数は、データを書き出すときに使用するタイプを指定する文字列です。 複数のタイプを同じ TypeString 変数に連結し、-t フラグを複数回指定できます。出力行はタイプ指定文字を指定した順序で、指定された各タイプに対して書き込まれます。 TypeString 変数は以下の文字で構成することができます。
a
バイトを指定された文字として表示します。これらの文字の対応する名前を使用して、0 から 01777 の範囲の少なくとも 7 ビットを持つバイトが書き込まれます。
c
バイトを文字として表示します。c タイプ文字列によって変換されるバイト数は、LC_CTYPE ローカル・カテゴリーによって決まります。 印字可能なマルチバイト文字は、文字の最初のバイトに対応する領域に書き込まれます。 2 文字のシーケンス ** は、文字内の残りのバイトそれぞれに対応する領域に、 文字が継続することを示して書き込まれます。以下の非グラフィック文字が C 言語エスケープ・シーケンスとして使用されます。
¥    Backslash
¥a   Alert
¥b   Backspace
¥f   Form-feed
¥n   New-line character
¥0   Null
¥r   Carriage return
¥t   Tab
¥v   Vertical tab
d
バイトを符号付き 10 進数として表示します。 デフォルトでは、od コマンドは C 言語タイプ int の対応するバイト数を変換します。 d タイプの文字列の後には、出力タイプの各インスタンスによって変換されるバイト数を指定する符号なしの 10 進整数を指定できます。

オプションの CILS 文字を d オプションに付加し、 それぞれ charintlongshort タイプの項目に 変換を適用するように指定できます。

f
バイトを浮動小数点数として表示します。 デフォルトでは、od コマンドは C 言語のタイプ double の対応するバイト数を変換します。 f タイプの文字列の後には、出力タイプの各インスタンスによって変換されるバイト数を指定する符号なしの 10 進整数を指定できます。

オプションの FDL 文字を f オプションに付加し、それぞれ floatdoublelong double タイプの項目に変換を適用するように指定できます。

o
バイトを 8 進数として表示します。 デフォルトでは、od コマンドは C 言語タイプ int の対応するバイト数を変換します。 o タイプの文字列の後には、出力タイプの各インスタンスによって変換されるバイト数を指定する符号なしの 10 進整数を指定できます。

オプションの CILS 文字を o オプションに付加し、それぞれ charintlongshort タイプの項目に変換を適用するように指定できます。

u
バイトを符号なし 10 進数として表示します。 デフォルトでは、od コマンドは C 言語タイプ int の対応するバイト数を変換します。 u タイプの文字列の後には、出力タイプの各インスタンスによって変換されるバイト数を指定する符号なしの 10 進整数を指定できます。

オプションの CILS 文字を u オプションに付加し、 それぞれ charintlongshort タイプの項目に 変換を適用するように指定できます。

x
バイトを 16 進数として表示します。 デフォルトでは、od コマンドは C 言語タイプ int の対応するバイト数を変換します。 x タイプの文字列の後には、出力タイプの各インスタンスによって変換されるバイト数を指定する符号なしの 10 進整数を指定できます。

オプションの CILS 文字を x オプションに付加し、それぞれ charintlongshort タイプの項目に変換を適用するように指定できます。

-v すべての入力データを書き出します。 デフォルトでは、直前の出力行と同じ出力行は出力されず、* (アスタリスク) 1 つだけを含む行に置き換えられます。 -v フラグを指定すると、すべての行が出力されます。

2 番目のフォーマットのフラグは以下のとおりです。

項目 説明
-a バイトを文字として、その ASCII 名とともに表示します。 -p フラグも指定すると、偶数パリティーを持つバイトが下線付きで表示されます。 -P フラグを指定すると、奇数パリティーを持つバイトが下線付きで表示されます。それ以外の場合、パリティーは無視されます。
-b バイトを 8 進数として表示します。
-c バイトを ASCII 文字として表示します。 以下の非グラフィック文字は C 言語エスケープ・シーケンスとして表示されます。
¥    Backslash
¥a   Alert
¥b   Backspace
¥f   Form-feed
¥n   New-line character
¥0   Null
¥r   Carriage return
¥t   Tab
¥v   Vertical tab

その他の文字は 3 桁の 8 進数として表示されます。

-C 拡張文字を標準印字可能な ASCII 文字として表示し (適切な文字によるエスケープ文字列使用)、マルチバイト文字を 16 進フォーマットで表示します。
-d 16 ビットのワードを符号なし 10 進数値として表示します。
-D long ワードを符号なし 10 進数値として表示します。
-e long ワードを倍精度の浮動小数点として表示します (-F フラグと同じ)。
-f long ワードを浮動小数点として表示します。
-F long ワードを倍精度の浮動小数点として表示します (-e フラグと同じ)。
-h 16 ビットのワードを符号なし 16 進数値として表示します。
-H long ワードを符号なし 16 進数値として表示します。
-i 16 ビットのワードを符号付き 10 進数として表示します。
-I (i の大文字) long ワードを符号付き 10 進数として表示します。
-l (L の小文字) long ワードを符号付き 10 進数として表示します。
-L long ワードを符号付き 10 進数として表示します。
-o 16 ビットのワードを符号なし 8 進数として表示します。
-O long ワードを符号なし 8 進数値として表示します。
-p -a 変換時の偶数パリティーを示します。
-P -a 変換時の奇数パリティーを示します。
-s 16 ビットのワードを符号付き 10 進数として表示します。
-S[N] null バイトで終わる文字列を検索します。 N 変数は認識される最小の長さの文字列を指定します。 N 変数を省略すると、最小の長さは 3 文字となります。
-v すべての入力データを書き出します。 デフォルトでは、直前の出力行と同じ出力行は出力されず、* (アスタリスク) 1 つだけを含む行に置き換えられます。 -v フラグを指定すると、すべての行が出力されます。
-w [N] 解釈して各出力行に表示する入力バイト数を指定します。 -w フラグを指定しないと、表示行ごとに 16 バイトが読み取られます。 -w フラグを N 変数なしで指定すると、表示行ごとに 32 バイトが読み取られます。最大入力値は 4096 バイトです。4096 バイトよりも大きい入力値は最大値に再割り当てされます。
-x 16 ビットのワードを 16 進数として表示します。
-X long ワードを符号なし 16 進数値として表示します。 (-H フラグと同じ)

注: フラグの -I (i の大文字)、-l (L の小文字)、-L は同一です。

終了状況

このコマンドは以下の終了値を返します。

項目 説明
0 すべての入力ファイルが正常に処理されました。
>0 エラーが発生しました。

  1. ファイルを 8 進数で一度に 1 ページずつ表示するには、以下のように入力します。
    od a.out | pg
    このコマンドは a.out ファイルを 8 進数フォーマットで表示し、pg コマンドを介して出力を送ります。
  2. ファイルを一度に複数のフォーマットに変換するには、以下のように入力します。
    od -t cx a.out > a.xcd
    このコマンドは a.out ファイルの内容を 16 進フォーマット (x) および文字フォーマット (c) で a.xcd ファイルに書き込みます。
  3. ファイルの途中から表示を開始するには (最初の構文フォーマットを使用)、以下のように入力します。
    
    od -t acx -j 100 a.out
    このコマンドは、a.out ファイルを、指定された文字 (a) フォーマット、文字 (c) フォーマット、および 16 進 (x) フォーマットで、100 バイト目から表示します。
  4. ファイルの途中から表示を開始するには (2 番目の構文フォーマットを使用)、以下のように入力します。
    od -bcx a.out +100.
    このコマンドは、a.out ファイルを 8 進バイト (-b) フォーマット、文字 (-c) フォーマット、および 16 進 (-x) フォーマットで、100 バイト目から表示します。 オフセットの後の . (ピリオド) により 10 進数になります。ピリオドを指定しない場合は、出力は 64 (8 進数 100) バイト目から始まります。

ファイル

項目 説明
/usr/bin/od od コマンドが入っています。