橘子味的心
标题:Linux shell dd 命令

Linux shell dd 命令用于读取、转换并输出数据。

dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

dd 命令语法格式

dd [OPERAND]...
dd OPERAND

参数说明:

if=文件名
输入文件名,缺省为标准输入。即指定源文件。
of=文件名
输出文件名,缺省为标准输出。即指定目的文件。
ibs=bytes
一次读入bytes个字节,即指定一个块大小为bytes个字节。obs=bytes
一次输出bytes个字节,即指定一个块大小为bytes个字节。bs=bytes
同时设置读入/输出的块大小为bytes个字节。
cbs=bytes
一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks
从输入文件开头跳过blocks个块后再开始复制。
seek=blocks
从输出文件开头跳过blocks个块后再开始复制。
count=blocks
仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=<关键字>
-
--help
显示帮助信息
--version
显示版本信息

<关键字>可以有以几种

  1. conversion
    用指定的参数转换文件。
  2. ascii
    转换ebcdic为ascii
  3. ebcdic
    转换ascii为ebcdic
  4. ibm
    转换ascii为alternate ebcdic
  5. block
    把每一行转换为长度为cbs,不足部分用空格填充
  6. unblock
    使每一行的长度都为cbs,不足部分用空格填充
  7. lcase
    把大写字符转换为小写字符
  8. ucase
    把小写字符转换为大写字符
  9. swab
    交换输入的每对字节
  10. noerror
    出错时不停止
  11. notrunc
    不截短输出文件
  12. sync
    将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

范例

在 Linux 下制作启动盘,可使用如下命令:

[root@localhost ~]# dd if=boot.img of=/dev/fd0 bs=1440k

testfile 文件中的所有英文字母转换为大写, 然后保存为 testfile_1 文件,在命令提示符中使用如下命令:

dd if=testfile of=testfile_1 conv=ucase

其中 testfile 的内容为:

[root@localhost ~]# cat testfile
Hello 简单教程!
Hello 简单编程!

转换完成后,testfile_1 的内容如下:

使用dd 命令,大小写转换记录了0+1 的读入

[root@localhost ~]# dd if=testfile of=testfile_1 conv=ucase 
0+1 records in
0+1 records out
41 bytes (41 B) copied, 0.000371385 s, 110 kB/s

查看转换后的 testfile_1 文件内容

[root@localhost ~]# cat testfile_1
HELLO 简单教程!
HELLO 简单编程!   #testfile_1 中的所有字符都变成了大写字母              

由标准输入设备读入字符串,并将字符串转换成大写后,再输出到标准输出设备,使用的命令为:

dd conv=ucase

输入以上命令后按回车键,输入字符串,再按回车键,按组合键Ctrl+D 退出,出现以下结果:

[root@localhost ~]# dd conv=ucase
Hello 简单教程!                      # 输入字符串后按回车键 
Hello 简单编程!HELLO 简单教程!        # 按组合键 Ctrl+D 退出,转换成大写结果
HELLO 简单编程!0+2 records in
0+1 records out
39 bytes (39 B) copied, 35.3293 s, 0.0 kB/s
[root@localhost ~]#

返回上一级

目录

分类