dd 读取、转换并输出数据
功能: 读取、转换并输出数据
语法: dd [bs=<字节数>] [cbs=<字节数>] [conv=<关键词>] [count=<块数>] [ibs=<字节数>] [if=<文件>] [obs=<字节数>] [of=<文件>] [seek=<块数>] [skip=<块数>] [--help] [--version] 说明: dd可从标准输入或读取文件数据,按指定的格式来转换数据,再输出到文件、设备或标准输出 参数: bs=<字节数> 将ibs(输入)与obs(输出)设置成指定的字节数 cbs=<字节数> 每次只转换指定的字节数 conv=<关键词> 指定文件转换的方式。可用的选项如下: ascii:将EBCDIC轮换成ASCII; ebcdic:将ASCII转换成EBCDIC; ibm:将ASCII转换成IBM EBCDIC; block:将换行符号取代为cbs数目的空格符; unblock:若读取到cbs数目的空格符,则以换行符来取代 lcase:将大定字母改为小写 notrunc:不要截断输出文件 ucase:将小写字母改为大写 swab:输入的字节每两个一组,彼此对调 noerror:即使读取时有误,仍然继续执行 sync:以NULL填满输入的块,使块与ibs的大小相同 count=<块数> 仅读取指定的块数 ibs=<字节数> 每次读取的字节数 if=<文件> 从文件读取,若未指定此参数,则从标准输入设备读取 obs=<字节数> 每次输出的字节数 of=<文件> 输出到指定文件,若未指定此参数,则输出到屏幕 seek=<块数> 一开始输出时,跳过指定的块数,块与obs的大小相同 skip=<块数> 一开始读取时,跳过指定的块数,块与ibs的大小相同 --help --version 示例: 1)在Linux下,制作启动罗盘 dd if=boot.img of=/dev/fd0 bs=1440k 2)将lofile文件中的所有英文字母转换为大写,然后保存成upfile dd if=lofile of=upfile conv=ucase 3)将upfile文件中所有的英文字母转为小写,并保存成lowfile dd if=upfile of=lowfile conv=lcase 4)由标准输入设备(键盘)读入字符串,将字符串转换成大写后,再输出到标准输出设备 dd conv=ucase 执行后可按下Ctrl+D结束所要输入的字符串 5)将ASCII编码的infile文件转换成EBCDIC编码,并输出到outfile文件 dd if=infile of=outfile conv=EBCDIC 6)将EBCDIC编码的文件转换成ASCII编码文件infile,并输出到outfile文件 dd if=infile of=outfile conv=ascii
» 相关连接:
[回复]
7)将infile文件中第20字节以后的英文字母转换为大写,然后保存成outfile
dd if=infile of=outfile ibs=10 skip=2 #(读取时可跳过10x2个字节)
» 相关连接:
[回复]
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名,缺省为标准输入。 of=file 输出文件名,缺省为标准输出。 ibs=bytes 一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。 obs=bytes 一次写 bytes 个字节(即一个块大小为 bytes 个字节)。 bs=bytes 同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。 cbs=bytes 一次转换 bytes 个字节,即转换缓冲区大小。 skip=blocks 从输入文件开头跳过 blocks 个块后再开始复制。 seek=blocks 从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效) count=blocks 仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 conv=conversion[,conversion...] 用指定的参数转换文件。 转换参数: ascii 转换 EBCDIC 为 ASCII。 ebcdic 转换 ASCII 为 EBCDIC。 ibm 转换 ASCII 为 alternate EBCDIC. block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。 unblock 使每一行的长度都为 cbs ,不足部分用空格填充。 lcase 把大写字符转换为小写字符。 ucase 把小写字符转换为大写字符。 swab 交换输入的每对字节。 Unlike the Unix dd, this works when an odd number of bytes are read. If the input file contains an odd number of bytes, the last byte is simply copied (since there is nothing to swap it with). noerror 出错时不停止。 notrunc 不截短输出文件。 sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。 由于 dd 命令允许二进制方式读写,所以特别适合在原始物理设备上进行输入/输出。例如可以用下面的命令为软盘建立镜像文件: dd if=/dev/fd0 of=disk.img bs=1440k 有趣的是,这个镜像文件能被 HD-Copy ,Winimage 等工具软件读出。再如把第一个硬盘的前 512 个字节存为一个文件: dd if=/dev/hda of=disk.mbr bs=512 count=1 生成Xen使用的镜像硬盘文件 A: dd if=/dev/zero of=/disk2/xen/centos5.office.img bs=1M count=3072 oflag=direct B: dd if=/dev/zero of=centos5.img bs=2k seek=4096k count=1 转自:http://chaoyueziwo21.blogbus.com/logs/17413029.html
» 相关连接:
|
» 本栏目最新帖:
» 网站最新帖:
» 精华帖:
» 热点帖:
|