zoukankan      html  css  js  c++  java
  • Linux命令之dd

    dd [OPERAND]

    dd 选项

    复制一个文件,根据[OPERAND]进行转换和格式化

    (1). OPERAND参数

    说明1:dd的选项只有’--help’和’--version’,也就是帮助与版本信息。而下列都是[操作数],而非选项。

    说明2:读取是输入,写入是输出

    说明3:不指定if,默认从标准输入读取。如果不指定of,默认写入到标准输出

    bs=BYTES 同时设置读取和写入(输入ibs输出obs)的块大小为BYTES个字节,具体看本章(4).块大小可以使用的计量单位

    cbs=BYTES 一次转换BYTES个字节,即指定转换缓冲区大小

    conv=CONVERSION[,CONVERSION] 用指定参数转换文件

    count=N 仅拷贝N个块,块大小等于ibs指定的字节数

    ibs=BYTES 一次读取BYTES个字节,即指定一个块大小为BYTES个字节(默认512)

    if=FILE 从文件读取代替标准输入,即指定源文件

    iflag=FLAG[,FLAG] 使用FLAG参数指定的输入方式

    obs=BYTES 一次写入BYTES个字节,即指定一个快大小为BYTES个字节(默认512)

    of=FILE 写入到文件代替标准输出,即指定目的文件

    oflag=FLAG[,FLAG] 使用FLAG参数指定的输出方式

    seek=BLOCKS 从输出文件开头跳过BLOCKS个输出块再开始复制(小心ibs和obs不一样)

    skip=BLOCKS 从输入文件开头跳过BLOCKS个输入块再开始复制(小心ibs和obs不一样)

    status=WHICH 用来控制dd程序的输出信息。分别为noxfer,none和progress,默认为progress。none不输出任何相关信息,错误信息正常输出。noxfer不输出最后的统计信息。progress输出所有信息。

    (2).CONVERSION参数

    ascii 由ebcdic码转换至ascii码

    ebcdic 由ascii码转换至ebcdic码

    ibm 由ascii码转换至替换的ebcdic码

    block 对于输入中的每一行输出cbs个字节,用空格替换输入换行符,必要时用空格填充

    unblock 删除cbs大小的块的尾部空格,并添加一个换行符

    lcase 将大写字符转换为小写字符

    nocreat 不创建输出文件,输出文件必须已经存在

    excl 输出文件已经存在则失败;dd命令必须创建文件本身

    notrunc 不要截断输出文件(不将文件长度缩短为0)

    ucase 将小写字符转换为大写字符

    sparse 尝试查找而不是编写空(NUL)输出块。在支持稀疏文件的文件系统中,当扩展输出文件时,这会创建稀疏输出。

    swab 交换每对字节,奇数时最后一个字节只复制

    noerror 读取数据发生错误后仍然继续

    sync 把每个输入块以空(NUL)填充至ibs大小,如果配合日block或unblock使用,则以空格代替空(NUL)填充

    fdatasync 结束前将输出文件数据写入磁盘

    fsync 类似上面,但元数据也一同写入

    (3).FLAG参数

    append 追加模式。将数据拷贝到目标文件末尾,同时应该设置conv=notrunc。否则文件将在被拷贝之前清空。

    cio 使用并发I/O存取模式,此模式使用直接I/O。并删除POSIX要求,将所有I/O串行化到同一个文件。在cio模式下无法打开该文件,同时打开一个标准文件(这句话可能有错,原文:A file cannot be opened at cio mode,and with a standard open in the same time.)。

    direct 使用直接I/O存取模式,避免缓冲区高速缓存(不在内存中对文件数据进行缓存)

    directory 仅拷贝文件夹,因为很多系统不支持对文件夹进行I/O操作,所以不太实用。

    dsync 使用同步I/O模式读写数据。每次写的时候,都强制进行一次物理写入(写入/保存到磁盘)

    sync 数据和元数据都使用同步I/O模式。

    fullblock 直到填充万一个块后才返回

    nonblack 使用非阻塞I/O

    noatime 不改变文件的访问时间

    noctty 不对dd使用指定的文件作为控制终端

    nofollow 不跟随符号链接

    nolinks 如果有多个硬链接则失败(硬链接和软链接也就是符号链接,自己查一下吧,有点复杂)

    binary 使用二进制I/O

    text使用text I/0

    count_bytes 将count的单位设置为字节,而不是块

    (4).块大小可以使用的计量单位

    单位大小

    代码

    字节(1B)

    c

    字节(2B)

    w

    块(512B)

    b

    千字节(1024B)

    k

    兆字节(1024KB)

    M

    吉字节(1024MB)

    G

    (5).实例

      根据/dev/zero空文件创建一个50M的空文件

    [xf@xuexi ~]$ dd if=/dev/zero of=1.txt bs=M count=50
    记录了50+0 的读入
    记录了50+0 的写出
    52428800字节(52 MB)已复制,0.0508383 秒,1.0 GB/秒
    [xf@xuexi ~]$ ll -h 1.txt 
    -rw-rw-r--. 1 xf xf 50M 2月  26 10:17 1.txt
    [xf@xuexi ~]$ cat 1.txt 
    [xf@xuexi ~]$ 
    

      注意:还可以用于完整备份。dd if=/dev/sda of=/dev/sdb(包括超级块等)

  • 相关阅读:
    复旦大学高等代数期末考试班级前几名
    复旦高等代数 II(17级)每周一题
    复旦大学2017--2018学年第一学期高等代数I期末考试情况分析
    复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第六大题解答
    复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第七大题解答
    复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第八大题解答
    复旦高等代数 I(17级)每周一题
    复旦大学高等代数考试命题的若干经验
    复旦大学数学学院高等代数历届期中考试大题精选之三(18级)
    复旦大学数学学院转入大数据学院的14级同学对高等代数课程的评价
  • 原文地址:https://www.cnblogs.com/diantong/p/9044713.html
Copyright © 2011-2022 走看看