dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。dd 的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number mif=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 交换输入的每对字节。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
/dev/null用于丢弃不需要的输出流,或用作输入流的空文件。是一个特殊的文件,而不是目录。
/dev/zero也是一个特殊的输入文件,当读取它时,会源源不断地提供空字符。它的用途有两种,一种是用于覆盖信息,另一种是产生一个特定大小的空白文件。如:
dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=4
/dev/random也是一个特殊的设备文件,用于产生随机数
/dev/full一种常满设备文件,向其写入时总会返回设备无剩余空间的错误,当读取时与/dev/zero相似,不断地返回空字符(NULL, ASCII NUL, 0x00).
$ echo "Hello world" > /dev/full
bash: echo: write error: No space left on device
阅读(1447) | 评论(0) | 转发(1) |