dd命令

之前我们介绍了loop的设备的基本使用,我们涉及到了一个命令,dd。

一、dd命令的简单介绍

以可选块长度复制文件,默认情况下从标准输入设备输出到标准输出设备。复制过程中,还可以对文件进行一些转换。

dd命令可以指定block的大小,按照block对某一个文件进行操作,在对磁盘等设备进行操作的时候,使用dd命令,会非常方便,特别是对块设备进行操作。

如果是对文件系统进行操作,还是使用tar backup cpio等其他命令更加方便。

 

二、dd命令的常用选项

格式:dd 选项1=xxx 选项2=xxx

 

常见选项:

if=file  从一个文件中读入内容,如果不指定if,那么默认是从stdin读入。

of=file 输出到一个文件,如果不指定of,那么默认输出到stdout。

 

ibs=bytes  设置读入的块的大小,input block size。这个代表dd每一次读入一个block的数据的大小。默认是512字节。

obs=bytes 设置输出的块的大小,output block size。这个达标dd每一次输出一个block的数据的大小。默认是512字节。

bs=bytes  设置读入和输出的block的大小。该选项覆盖ibs和obs的设置。

 

 

cbs=bytes  设置转换时的block的大小,配合conv=block或者unblock使用。

 

skip=n     一开始读取输入文件的时候,跳过前面n个block的内容。如果设置了iflag=skip_bytes,那么就会跳过前面n字节数的内容。

 

seek=n    在输出到一个output文件的时候,跳过前面n个block的内容,从第n+1个block开始写入内容。如果设置了oflag=seek_bytes,则跳过前面n字节数的内容。

 

count=n   从inout文件中复制n个block的数据,而不是一直到文件结束。如果iflag=count_bytes设置了,那么就只复制n字节数的数据。某些时候,可能不存在一个完成的block的内容,那么就只会read少于1个block的数据进来。当设置了iflag=fullblock的时候,就会一次性读入一个完整的块,如果数据不够一个block,那么就会等待知道读入一个完整的块。

 

status=level  控制dd输出的一些信息到标准输出上,具体可以参看coreutils文档。

 

 

conv=conversion,[conversion]  转换方式,可以有个标志设置,该方式控制了读入之后,对读入的数据进行怎样的吹,然后输出。具体参看coreutils文档。

 

 

iflag=flag,[flag]  设置读入的标志,这些标志参数控制了dd如何读入数据。

oflag=flag,[flag]  设置输出标志,这些标志参数控制了dd如何输出数据。

 

这两个标志参数,具体参看coreutils文档。

 

 

三、一个例子

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

 

[root@localhost text]# du -sh sun.txt

1.1M    sun.txt

 

上面这个例子,从/dev/zero读入数据,然后输出到文件sun.txt中,其中规定了一个block的大小为1M,然后读入1个block。


你可能感兴趣的:(linux,linux命令行)