Thursday, December 08, 2011

Linux下使用od查看文件


查看文本文件使用vim/less就足夠了,但如果想要查看一些其他二進制文件(例如DB的數據文件、程序的二進制代碼)則借助於od/hexdump這些工具會很方便,這裡會通過一些實例來詳細介紹od命令的相關參數。
1. od參數詳解
$od -j 49152 -N 38 -w4 -A d -t x1 -v tmp_test.ibd 0049152 fd 6f fb 70 0049156 00 00 00 03 0049160 ff ff ff ff 0049164 ff ff ff ff 0049168 00 00 00 03 0049172 ba 92 ac 0c 0049176 45 bf 00 00 0049180 00 00 00 00 0049184 00 00 00 00
-j 49152 跳過前49152個字節(bytes)
-N 38 僅顯示38個字節
-w4 每一行顯示4個字節
-A d 表示最左側的偏移量按十進制顯示;-A還可以接[doxn],其中d表示十進制,o表示8進制,x表示16進制,n表示不顯示該偏移量,如:
od -j 49152 -N 8 -w4 -A n -t x1 -v ibdata1 b4 0b c7 31 00 00 00 03
-t x1表示如何顯示文件內容。這裡,x表示按照16進制輸出文件內容,x後面跟的「1」表示一次顯示一個字節。下面是一個-t x2的輸出:
od -j 49152 -N 8 -w4 -A n -t x2 -v ibdata1 0bb4 31c7 # 0bb4是十進製表示的兩個字節 0000 0300 #
另外,注意到這裡是0bb4和前面的b40b略有不同,這是因為我這裡的測試平台是little-endian的(x86_64 Linux)。
最後,參數-v表示,即使連續多行都是完全相同的字符0,仍然原樣輸出;不加該參數,則會使用星號(*)跳過多個相同的行。
好了,再回頭看看最前面的命令,已經沒那麼難理解了吧。
參考文獻:man od

No comments: