Chinaunix首页 | 论坛 | 博客
  • 博客访问: 561225
  • 博文数量: 105
  • 博客积分: 3274
  • 博客等级: 中校
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 12:14
文章分类

全部博文(105)

文章存档

2011年(1)

2010年(104)

分类: LINUX

2010-06-30 21:41:21

在linux下经常看见dd命令,它到底有什么作用呢?
man下

[zhh@localhost ~]$ man dd
 
DD(1)                            User Commands                           DD(1)
 
NAME
       dd - convert and copy a file
 
SYNOPSIS
       dd [OPERAND]...
       dd OPTION
 
DESCRIPTION
       Copy a file, converting and formatting according to the operands.
 
       bs=BYTES
              force ibs=BYTES and obs=BYTES
 
       cbs=BYTES
              convert BYTES bytes at a time
 
       conv=CONVS
              convert the file as per the comma separated symbol list
 
       count=BLOCKS
              copy only BLOCKS input blocks
 
       ibs=BYTES
              read BYTES bytes at a time
 
       if=FILE
              read from FILE instead of stdin
 
       iflag=FLAGS
              read as per the comma separated symbol list
 
       obs=BYTES
              write BYTES bytes at a time
 
       of=FILE
              write to FILE instead of stdout
 
       oflag=FLAGS
              write as per the comma separated symbol list
 
       seek=BLOCKS
              skip BLOCKS obs-sized blocks at start of output
 
       skip=BLOCKS
              skip BLOCKS ibs-sized blocks at start of input
 
       status=noxfer
              suppress transfer statistics
 
       BLOCKS  and  BYTES may be followed by the following multiplicative suf-
       fixes: xM M, c 1, w 2,  b  512,  kB  1000,  K  1024,  MB  1000*1000,  M
       1024*1024,  GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E,
       Z, Y.
 
       Each CONV symbol may be:
 
       ascii  from EBCDIC to ASCII
 
       ebcdic from ASCII to EBCDIC
 
       ibm    from ASCII to alternate EBCDIC
 
       block  pad newline-terminated records with spaces to cbs-size
 
       unblock
       replace trailing spaces in cbs-size records with newline
 
       lcase  change upper case to lower case
 
       nocreat
              do not create the output file
 
       excl   fail if the output file already exists
 
       notrunc
              do not truncate the output file
 
       ucase  change lower case to upper case
 
       swab   swap every pair of input bytes
 
       noerror
              continue after read errors
 
       sync   pad every input block with NULs  to  ibs-size;  when  used  with
              block or unblock, pad with spaces rather than NULs
 
       fdatasync
              physically write output file data before finishing
 
       fsync  likewise, but also write metadata
 
       Each FLAG symbol may be:
 
       append append  mode  (makes  sense  only  for output; conv=notrunc sug-
              gested)
 
       direct use direct I/O for data
 
              directory fail unless a directory dsync     use synchronized I/O
              for  data  sync       likewise,  but also for metadata fullblock
              accumulate full blocks  of  input  (iflag  only)  nonblock   use
              non-blocking  I/O  noatime    do  not  update access time noctty
              do not assign controlling terminal from file  nofollow   do  not
              follow symlinks
 
       Sending  a  USR1  signal  to  a running 鈥榙d鈥?process makes it print I/O
       statistics to standard error and then resume copying.
 
              $ dd if=/dev/zero of=/dev/null& pid=$!
              $ kill -USR1 $pid; sleep 1; kill $pid
 
              18335302+0 records in 18335302+0 records  out  9387674624  bytes
              (9.4 GB) copied, 34.6279 seconds, 271 MB/s
 
       Options are:
 
       --help display this help and exit
 
       --version
              output version information and exit
 
AUTHOR
       Written by Paul Rubin, David MacKenzie, and Stuart Kemp.
 
REPORTING BUGS
       Report bugs to <>.
 
COPYRIGHT
       Copyright  漏  2008  Free Software Foundation, Inc.  License GPLv3+: GNU
GPL version 3 or later <>
       This is free software: you are free  to  change  and  redistribute  it.
       There is NO WARRANTY, to the extent permitted by law.
 
SEE ALSO
       The  full  documentation  for dd is maintained as a Texinfo manual.  If
       the info and dd programs are properly installed at your site, the  com-
       mand
 
              info coreutils 鈥檇d invocation鈥?
 
       should give you access to the complete manual.
 
GNU coreutils 6.12               November 2008                           DD(1)
 
简单的注释下。
 
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

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