Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251167
  • 博文数量: 103
  • 博客积分: 54
  • 博客等级: 民兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 11:36
文章分类

全部博文(103)

文章存档

2016年(4)

2015年(91)

2014年(3)

2012年(5)

我的朋友

分类: LINUX

2015-09-08 22:30:56

od [OPTION]... [FILE]... 

od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]] 

od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]] 


[功能] 

把文件用8进制或者其他的格式显示出来。通常用于查看特殊格式文件的内容。 


[举例] 

*用od查看file1内容: 

$od file1 

输入之后,输出如下: 

0000000 005141 

0000002 

这里,file1使用"echo a >file1"生成的,己file1中只有一个字符a。 


*用od查看file1和file2的内容: 

$od file1 file2 

输入之后,输出如下: 

0000000 005141 005142 

0000004 

这里,file1的内容是a,file2的内容是b,将两个文件作为输入的时候,就把两个文件合并起来了。 


*用od查看test内容,地址基数用十进制显示: 

$od -Ad test 

输入之后,输出如下: 

0000000 062550 062562 066440 065541 020145 020141 062564 072163 

0000016 000012 

0000017 

这里,地址基数就是输入中的第一列。 


*用字符来显示文件test: 

$od -t c test 

或$od -tc test 

输入之后,输出如下: 

0000000   h   e   r   e       m   a   k   e       a       t   e   s   t 

0000020  \n 

0000021 

这里,文件的内容实际就是"here make a test"这一行内容,如果是中文的字符就会显示相应的编码了。 


*每行只用2个字节显示: 

$od -w2 test 

输入之后,输出如下: 

0000000 062550 

0000002 062562 

0000004 066440 

0000006 065541 

0000010 020145 

0000012 020141 

0000014 062564 

0000016 072163 

0000020 000012 

0000021 

这里,最少就是两个字节宽度了,如果指定一个字节,那么也自动变成两个字节的了。 


*每行只用4个字节显示: 

$od -w4 test 

输入之后,输出如下: 

0000000 062550 062562 

0000004 066440 065541 

0000010 020145 020141 

0000014 062564 072163 

0000020 000012 

0000021 


*字符方式输出test内容,跳过两个字节: 

$ od -tc -j 2 test 

输入之后,输出如下: 

0000002   r   e       m   a   k   e       a       t   e   s   t  \n 

0000021 


*只显示两个字节,用字符方式显示: 

$ od -tc -N2 test 

输入之后,输出如下: 

0000000   h   e 

0000002 

这里,为了便于读取,使用了字符的方式进行打印。如果同时指定了-j跳过的选项,那么就会从-j指定的相应位置打印2个字节。 


[描述] 

这个命令默认把文件的内容用八进制的形式清晰地写在标准输出上。如果是多个文件,那么会把文件合并显示,如果没指定文件名称,那么就择标准输入作为默认的输入。通过指定该命令的不同项可以以十进制、八进制、十六进制和ASCII码来显示文件。 

常用的项: 

- A 指定地址(文件offset)用什么基数打印,包括: 

d 十进制 

o 八进制(系统默认值) 

x 十六进制 

n 不打印位移值(也就是不打印地址偏移部分) 


-j Bytes 首先跳过Bytes的输入。 


-S [Bytes] 输出至少Bytes的图形字符串,这里的缩减形式等价于--strings[=Bytes]。 


-w [Bytes] 指定每行的输出字节数目。 


-N Bytes 指定显示的输入限定为Bytes字节。 


- t 指定数据的显示格式,主要的参数有: 

c ASCII字符或反斜杠序列 

d[SIZE] 有符号十进制数,每个整数SIZE字节。 

f[SIZE] 浮点数,每个整数SIZE字节。 

o[SIZE] 八进制(系统默认值为02),每个整数SIZE字节。 

u[SIZE] 无符号十进制数,每个整数SIZE字节。 

x[SIZE] 十六进制数,每个整数SIZE字节。 

除了项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。实际有一些简写形式,例如-t c等价于-c,具体参见man手册。 


更详细的信息参见man手册。 

说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。 



[其他] 

阅读(1137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~