• dd命令:用于读取、转换并输出数据


    以下内容源于网络资源的学习与整理,如有侵权请告知删除。

    命令作用

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

    参数说明

    • 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=关键字:关键字可以有以下11种:
      • conversion:用指定的参数转换文件
      • ascii:转换ebcdic为ascii
      • ebcdic:转换ascii为ebcdic
      • ibm:转换ascii为alternate ebcdic
      • block:把每一行转换为长度为cbs,不足部分用空格填充
      • unblock:使每一行的长度都为cbs,不足部分用空格填充
      • lcase:把大写字符转换为小写字符
      • ucase:把小写字符转换为大写字符
      • swap:交换输入的每对字节
      • noerror:出错时不停止
      • notrunc:不截短输出文件
      • sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
    • --help:显示帮助信息
    • --version:显示版本信息

    实例

    (1)在Linux 下制作启动盘。

    dd if=boot.img of=/dev/fd0 bs=1440k 

    (2)将testfile_2文件中的所有英文字母转换为大写,然后转成为testfile_1文件。

    dd if=testfile_2 of=testfile_1 conv=ucase 

    其中testfile_2 的内容为:

    1. HELLO LINUX!
    2. Linux is a free unix-type opterating system.
    3. This is a linux testfile!
    4. Linux test

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

    1. HELLO LINUX!
    2. LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.
    3. THIS IS A LINUX TESTFILE!
    4. LINUX TEST

    (3)由标准输入设备读入字符串,并将字符串转换成大写后,再输出到标准输出设备。

    dd conv=ucase

    输入以上命令后按回车键,输入字符串后再按回车键,按组合键Ctrl+D 退出。

    1. root@ubuntu:/home/xjh/iot/embedded_basic/linux# dd conv=ucase
    2. xjhhandsome
    3. XJHHANDSOME
    4. 记录了0+1 的读入
    5. 记录了0+1 的写出
    6. 12字节(12 B)已复制,28.4933 秒,0.0 kB/秒
    7. root@ubuntu:/home/xjh/iot/embedded_basic/linux#

    (4)制作镜像文件rootfs.ext2常用的第一条语句。

    创建一个大小为10M并用0填充的文件roots.ext2(这时候文件名的后缀没啥含义,只是表明要制作这个格式的镜像文件)

    dd if=/dev/zero of=rootfs.ext2 bs=1024 count=10240
    1. root@ubuntu:/home/xjh/iot/embedded_basic/linux# ls //一开始没有文件
    2. root@ubuntu:/home/xjh/iot/embedded_basic/linux# dd if=/dev/zero of=rootfs.ext2 bs=1024 count=10240
    3. 记录了10240+0 的读入
    4. 记录了10240+0 的写出
    5. 10485760字节(10 MB)已复制,0.0614963 秒,171 MB/秒
    6. root@ubuntu:/home/xjh/iot/embedded_basic/linux# ls
    7. rootfs.ext2 //执行上面命令之后,出现这个文件
    8. root@ubuntu:/home/xjh/iot/embedded_basic/linux# du rootfs.ext2 -h
    9. 10M rootfs.ext2 //上面命令说明创建的大小是10M,这里的确是10M
    10. root@ubuntu:/home/xjh/iot/embedded_basic/linux#
  • 相关阅读:
    计算机毕业设计 SSM高校普法系统 法律知识平台 法律科普平台 律师推荐平台Java Vue MySQL数据库 远程调试 代码讲解
    【24种设计模式】责任链模式(Chain of Responsibility Pattern)
    学习SpringMvc第二战之【SpringMVC之综合案例】
    ReentrantLock 实现原理
    数据库概论 - MySQL的简单介绍
    C# 11 中的新增功能
    STL中map用法详解
    第十二届蓝桥杯之货物摆放
    spring源码——beanDefinition源码解析(一)
    外汇天眼:CFTC处罚Advantage Futures 39.5万美元
  • 原文地址:https://blog.csdn.net/oqqHuTu12345678/article/details/126132122