語法
使用字元串類型顯示檔案,來格式化輸出。
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 [ N ] ] [ -w [ N ] ] [ File ] [ [ + ] Offset [ . | b | B ] [ + ] Label [ . | b | B ] ]
描述
常見的檔案為文本檔案和二進制檔案。此命令主要用來查看保存在二進制檔案中的值。比如,程式可能輸出大量的數據記錄,每個數據是一個單精度浮點數。這些數據記錄存放在一個檔案中,如果想查看下這個數據,這時候od命令就派上用場了。在我看來,od命令主要用來格式化輸出檔案數據,即對檔案中的數據進行無二義性的解釋。不管是IEEE754格式的浮點數還是ASCII碼,od命令都能按照需求輸出他們的值。
如果沒有指定檔案名稱,或者檔案名稱為“-”,則從標準輸入讀入數據。
od 命令用指定格式顯示由 File 參數指定的檔案。如果 File 參數沒有給定, od 命令讀取標準輸入。 使用多個 -bcCDdFfOoSstvXx 選項可以指定多個類型。
在第一個語法格式中,輸出格式是由 -t 標誌指定。如果沒有指定格式類型,-t o2 是預設值。
在第二個語法格式中,輸出格式由標誌組合指定。Offset 參數指定了檔案中檔案輸出的開始點。 預設情況下,Offset 參數解釋為八進制位元組。如果附加了 . 點後綴, 參數解釋為十進制的;如果參數前導以 x 或 0x 開始,處理為十六進制。如果 b 後綴添加到參數,解釋為塊是 512 位元組;如果 B 後綴添加到參數上,解釋為塊是 1024 位元組。
參數
Label 參數解釋為首位元組顯示的偽地址。 如果使用了該參數,它在 () 括弧中給出,遵循 Offset 參數。 相對於 Offset 參數,後綴有同樣的意義。
當 od 命令讀取標準輸入時, Offset 參數和 Label 參數前頭必須有個 + (加號)。
環境變數
環境變數的設定如 LANG 和 LC_ALL 影響著 od 命令的操作。 要獲取更多信息,請參閱 《AIX 5L V5.2 系統管理指南:作業系統與設備》中的『理解環境變數的語言環境』 。
標誌
第一種格式的標誌:
-A AddressBase 指定輸入偏移底數。此 AddressBase 變數是下列的字元之一:
d
偏移底數寫為十進制的。
o
偏移底數寫為八進制的。
x
偏移底數寫為十六進制的。
n
偏移底數沒有顯示。
除非指定 -A n,輸出行前將有需要寫的下一位元組的輸入偏移量,輸入偏移量在輸入檔案間會形成。 另外,跟隨在最後一個位元組的位元組偏移量將在所有的輸入數據處理完後顯示。沒有 -A 基地址選項和 [offset_string] 運算元,輸入偏移量底數以八進制顯示。
=
使用方法
-j Skip
在開始顯示輸出前,跳躍過由 Skip 變數給定的位元組數。 如果指定的檔案超過一個,od 命令在顯示輸出前跳躍過分配的連線輸入檔案位元組數。 如果混合輸入不是至少跳躍位元組的長度, od 命令將寫出診斷訊息給標準錯誤,並退出非零狀態。 Count 選項參數
預設情況下,Skip 變數的值解釋為十進制數字。 帶有前綴 0x 或 0X, 偏移量解釋為十六進制數;帶有前綴 0,偏移量解釋為八進制數。 如果字元 b,k,或者 m 附加到 Skip 變數包含的數,偏移量在位元組上等於 Skip 變數各自乘以 512,1024,或者 1024*1024 的值。
-N Count 格式不超過由 Count 變數指定的輸入位元組數。預設情況下,Count 變數解釋為十進制數。帶有前綴 0x 或者 0X,認為是十六進制數。 如果以 0 開始,認為是八進制數。 顯示地址的底數不是由 Count 選項參數的底數提示的。
-t TypeString 指定輸出類型。TypeString 變數是一個當寫出數據時,指定使用類型的字元串。 多個類型能夠連線在同一個 TypeString 變數中, 並且 -t 標誌能夠多次指定。 對於每個指定的類型寫出了輸出行, 依照給定類型指定字元的順序。TypeString 變數能夠包括下列字元:
a
顯示位元組為指定的字元。在 0 到 01777 範圍內,帶有至少 7 位的位元組,對於那些字元,用相應的名稱來寫。
c
顯示位元組為字元。 由 c 類型字元串變換的位元組數由 LC_CTYPE 本地類別確定。可列印的多個位元組字元的寫法對應於字元的第一個位元組;兩個字元序列 ** 的寫法對應於字元中每個保留的位元組,作為字元繼續的指示。下列非圖形字元作為 C- 語言轉義序列使用:
\ 反斜槓
\a 提示符
\b 退格符
\f 換頁
\n 換行字元
\0 空
\r 回車符
\t 制表符
\v 垂直制表符
d
顯示位元組為有符號十進制。預設情況下,od 命令變換相應的位元組數為 C -語言類型 int。d 類型字元串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型實例變換的位元組數。
可選的項 C,I,L,或者 S 字元能夠附加到 d 可選項,表示轉換應該分別適用於 char,int,long,或者 short。
f
顯示位元組為浮點。預設情況下,od 命令變換相應的位元組數為 C - 語言類型 double。 f 類型字元串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型的實例變換的位元組數。
可選項 F,D,或者 L 字元能夠附加到 f 可選項,表示轉換應該分別適用於類型 float,double,或者 long double。
o
顯示位元組為八進制。 預設情況下, od 命令變換相應的位元組數為 C - 語言類型 int。 o 類型字元串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型實例變換的位元組數。
可選項 C, I,L,或者 S 字元能夠附加到 o 可選項,表示轉換應該分別適用於類型 char,int,long,或者 short。
u
顯示位元組為無符號的十進制。預設情況下,od 命令變換相應的位元組數為 C-語言類型 int。u 類型字元串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型的實例變換的位元組數。
可選的項 C,I,L,或者 S 字元能夠附加到 u 可選項,表示轉換應該分別適用於 char,int,long 或者 short。
x
顯示位元組為無符號的十六進制。預設情況下,od 命令變換相應的位元組數為 C-語言類型 int。x 類型字元串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型實例變換的位元組數。
可選的項 C,I,L,或者 S 字元能夠附加到 x 可選項,表示轉換應該分別適用於 char,int,long 或者 short。
第二種格式的標誌:
-a 顯示位元組為字元,並且用它們的 ASCII 名稱顯示。如果 -p 標誌也給定了,帶有偶校驗的位元組加下劃線。 -P 標誌引起帶有奇校驗的位元組加下劃線。 否則忽略奇偶性校驗。
-b 顯示位元組為八進制值。
-c 顯示位元組為 ASCII 符。下列非圖形字元作為 C-語言轉義序列使用:
\ 反斜槓
\a 提示符
\b 退格符
\f 換頁
\n 換行字元
\0 空
\r 回車符
\t 制表符
\v 垂直制表符
其它表示為 3 位的八進制數。
-C 顯示擴展字元作為標準列印 ASCII 字元(使用合適的字元轉義),並且以十六進制格式顯示多位元組字元。
-d 顯示 16 位字為無符號十進制值。
-D 顯示長字為無符號十進制值。
-e 顯示長字為雙精度、浮點。(如同 -F 標誌)
-f 顯示長字為浮點。
-F 顯示長字為雙精度、浮點。(如同 -e 標誌)
-h 顯示 16 位字為無符號十六進制。
-H 顯示長字為無符號十六進制值。
-i 顯示 16 位字為有標記十進制。
-I (大寫 i)顯示長字為有標記十進制值。
-l (小寫 L)顯示長字為有標記十進制值。
-L 顯示長字為有標記十進制值。
注意: 標誌 -I(大寫 i),-l(小寫 L), 和 -L 是相同的。
-o 顯示 16 位字為無符號八進制。
-O 顯示長字為無符號八進制值。
-p 表示對 -a 轉換進行偶校驗。
-P 表示對 -a 轉換進行奇校驗。
-s 顯示 16 位字為有標記十進制值。
-S[N] 搜尋以空位元組結束的字元的字元串。 N 變數指定了需標識的最小長度的字元串。如果 N 變數省略了,最小長度預設值為 3 個字元。
-v 標誌對於下列兩種格式是一樣的:
-v 寫所有輸入數據。 預設情況下, 等同於先前輸出行的輸出行沒有列印,但是用只包含 * (星號)的行替換。 當指定 -v 標誌時,列印所有的行。
-w [N] 指定需解釋並且在每個輸出行顯示的輸入位元組的數量。 如果 -w 標誌沒有指定,每一顯示行讀取 16 位元組。 如果指定了 -w 標誌沒有帶 N 變數,每個顯示行讀取 32 個位元組。 最大輸入值是 4096 位元組。 大於 4096 位元組的輸入值將重新分配最大值。
-x 顯示 16 位字為十六進制值。
-X 顯示長字為無符號十六進制值。(如同 -H 標誌)
退出狀態
此命令返回下列出口值:
0 所有輸入檔案被成功處理。
>0 出現錯誤。
示例
1. 以八進制顯示檔案,一次顯示一頁,請輸入:
od a.out | pg
此命令以八進制格式顯示 a.out 檔案並且通過 pg 命令管道輸出。
2. 一次轉換檔案為數個格式,請輸入:
od -t cx a.out > a.xcd
此命令把 a.out 檔案的內容,以十六進制格式(x)和字元格式(c)寫到 a.xcd 檔案中。
3. 在中間開始顯示檔案(使用第一語法格式),請輸入:
od -t acx -j 100 a.out
此命令把 a.out 檔案以指定的字元(a)、字元(c)和十六進制(x)格式顯示,從第 100 個位元組開始。
4. 在檔案中間啟動(使用第二種語法格式),請輸入:
od -bcx a.out +100.
把 a.out 檔案以八進制位元組(-b)、位元組(-c)和十六進制(-x)格式顯示,從第 100 個位元組開始。偏移量後的 . (點)表示它是十進制數。沒有點,輸出將從第 64(八進制為 100)個位元組開始。
檔案
/usr/bin/od 包含od 命令。