dd命令使用总结

article/2025/9/29 23:24:26

dd命令介绍

dd是Linux下一个非常有用的命令,该命令用于读取、转换并输出数据;dd命令在Android shell下也支持使用。
语法格式:

dd   [option]

dd指令选项详解
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=ASCII:把EBCDIC码转换为ASCIl码。
conv=ebcdic:把ASCIl码转换为EBCDIC码。
conv=ibm:把ASCIl码转换为alternate EBCDIC码。
conv=block:把变动位转换成固定字符。
conv=ublock:把固定位转换成变动位。
conv=ucase:把字母由小写转换为大写。
conv=lcase:把字母由大写转换为小写。
conv=notrunc:不截短输出文件。
conv=swab:交换每一对输入字节。
conv=noerror:出错时不停止处理。
conv=sync:把每个输入记录的大小都调到ibs的大小(用NUL填充)。

Android shell中可支持的常用命令参数

  1. if=文件名:输入文件名,即指定源文件。
    /dev/zero主要是用来创建一个指定长度用于初始化的空文件, 一般需要创建空文件的时候if参数值都会设置为此项哦!
  2. of=文件名:输出文件名,即指定目的文件。
  3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes字节。
    bs=bytes:同时设置读入/输出的块大小为bytes字节。
  4. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  5. 关于conv参数的使用
    conv=ASCII:把EBCDIC码转换为ASCIl码。
    conv=ebcdic:把ASCIl码转换为EBCDIC码。
    conv=ibm:把ASCIl码转换为alternate EBCDIC码。
    conv=block:把变动位转换成固定字符。
    conv=ublock:把固定位转换成变动位。
    conv=ucase:把字母由小写转换为大写。
    conv=lcase:把字母由大写转换为小写。
    conv=notrunc:不截短输出文件。
    conv=swab:交换每一对输入字节。
    conv=noerror:出错时不停止处理。
    conv=sync:把每个输入记录的大小都调到ibs的大小(用NUL填充)。

Linux系统下可支持的常用命令参数

在这里插入图片描述
在Linux系统下,除了上述五个参数可以使用外,还有其他参数可用

iflag=FLAGS:指定读的方式FLAGS,参见“FLAGS参数说明”
oflag=FLAGS:指定写的方式FLAGS,参见“FLAGS参数说明”
FLAGS参数说明:
append -append mode (makes sense only for output; conv=notrunc sug-gested)
direct:读写数据采用直接IO方式;
directory:读写失败除非是directory;
dsync:读写数据采用同步IO;
sync:同上,但是针对是元数据
fullblock:堆积满block(accumulate full blocks of input )(iflag only);
nonblock:读写数据采用非阻塞IO方式
noatime:读写数据不更新访问时间

示例:
测试纯写入性能
dd if=/dev/zero of=test bs=8k count=10000 oflag=direct
测试纯读取性能
dd if=test of=/dev/null bs=8k count=10000 iflag=direct

注意事项

1、指定数字的地方若以下列字符结尾乘以相应的数字:
b=512, c=1, k=1024, w=2, xm=number m,
kB=1000,K=1024,MB=10001000,M=10241024,GB=100010001000,G=102410241024

2、读写性能的准确性
dd if=/dev/zero of=test bs=64k count=16k 是不准确的,
而 dd if=/dev/zero of=test bs=64k count=16k conv=fsync 比较准备,他在dd结束前会写到磁盘,
而dd if=/dev/zero of=test bs=64k count=4k oflag=dsync或者sync 是真正的每写一次就写一次磁盘

3、如何绕开cache
如果要规避掉文件系统cache,直接读写,不使用buffer cache,需做这样的设置
iflag=direct,nonblock
oflag=direct,nonblock
iflag=cio
oflag=cio
direct 模式就是把写入请求直接封装成io 指令发到磁盘
非direct 模式,就把数据写入系统缓存,然后就认为io 成功,并由操作系统决定缓存中的数据什么时候被写入磁盘


http://chatgpt.dhexx.cn/article/y0fG7lrp.shtml

相关文章

dd命令相关整理

对于一个软件测试人员而言,工作开展前就是准备自己的测试环境,那么重装系统就是首当其冲的一个必备技能。最近因为手边工作环境没有windows的系统,所以没有条件利用软碟通这类刻录软件直接刻录启动盘。被逼无奈之下用命令来刻录,整…

Linux:shell 脚本 自动解压压缩文件tar.gz到指定目录

具体情境 Ubuntu16.04系统,将.tar.gz格式的文件从/home/myftp/upload/nuodongiot目录自动解压到/home/myftp/upload/backupcopy目录中,并将源目录/home/myftp/upload/nuodongiot中的文件移动至/home/myftp/upload/extarct目录中 该过程进行单个文件进行…

tar解压文件至指定目录,不包含原目录

1、tar解压文件至指定目录,不包含原目录 要解压的压缩包原目录结构如下 tar -zxf log.tar.gz --strip-components 1 -C /opt/new_test注: --strip-components 1 解压至下一级目录,若为2则解压至下下级目录 2、压缩只指定的目录&#xff0c…

linux gz解压 指定目,linux解压tar.gz到指定文件夹或目录

1. 前言 本文主要讲解如何解压tar.gz到指定文件夹或目录,tar是Linux系统上的一种打包与压缩工具。 2. linux解压tar文件使用案例 Linux下使用tar命令把当前目录下的zcwyou.tar.gz解压到指定的目录/123/abc/ ,前提要保证存在/123/abc/这个目录。 [root@zcwyou ~]# tar -zxvf zc…

Linux tar 命令 将归档内指定文件解压到指定目录

首先介绍一下 tar 命令: 用途:打包文件(制作归档文件)、释放归档文件 格式: tar [选项]... 归档文件名 源文件或目录 tar [选项]... 归档文件名 [-C 目标目录] 常用命令选项: -c 创建 .tar 格式…

20191004在LINUX下如何将tar压缩文件解压到指定的目录下

百度搜索:tar 解压缩到指定目录 https://zhidao.baidu.com/question/9844116.html 在LINUX下如何将tar压缩文件解压到指定的目录下 各位,请教一下在LINUX下如何将tar压缩文件解压到指定的目录下,直接用tar xvf 解压出来的是放在当前目录的&am…

关于linux打包以及解压到指定目录的简单操作demo

1.打包到指定目录 命令:tar zcvf /root/test99/a.tar.gz a.txt 1.1打包到当前目录 命令:tar -zcvf a.tar.gz a.txt 2.解压到指定目录 命令: tar -zxvf a.tar.gz -C /root/test99 2.2解压到当前目录 命令:tar -zxvf a.tar.gz 打zip包: 方法如下&#xf…

linux tar解压文件至指定目录,不包含原目录

1、tar解压文件至指定目录,不包含原目录 要解压的压缩包原目录结构如下 通过 --strip-components 1 参数 解压到指定目录或当前目录(不含打包前原目录) tar zxf log.tar.gz --strip-components 1 -C /opt/new_test注: --strip-co…

Linux拓展之产生随机数

在 Linux 中可以通过内置变量 RANDOM 来产生随机数,该变量会产生一个 [0, 32767] 范围内的随机整数。如下: echo $RANDOM如果要产生 [0-10] 之内的随机整数:echo $(( $RANDOM % 10 )) 如果要产生 [1-10] 之内的随机整数:echo $((…

Linux生成随机数

生成随机数的方法有7种 1.通过时间获取随机数 1)date %s (随机生成10位数字) 用于获得时间戳。 如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程里面基本不能满足要求了。 2)date…

Linux时间子系统之定时事件层(Clock Events)

几乎所有的计算机系统中都会存在一个所谓的定时设备,经过设置后,在某个固定的时间或某个相对的时间间隔后,达到触发条件,发送中断给处理器。 系统中的每一种实际的定时事件设备都由一个叫做clock_event_device的结构体变量表示&a…

Linux随机数发生器

Linux随机数发生器 日期:2017-11-29 01:42:10 星期三 Linux随机数发生器 一、源代码的基本情况 Linux内核版本涉及文件功能概述 二、外部访问接口 内核层输出接口用户层输出接口环境噪音输入接口 三、核心源码分析 随机数发生器理论熵池结构熵的加入随机数的生成启动…

linux内核随机数函数测试

OS版本&#xff1a;openEuler 22.03 LTS 架构&#xff1a;x86_64 描述&#xff1a;调用内核随机数生成函数&#xff0c;并打印。 // random_num_test.c#include <linux/kernel.h> #include <linux/module.h> #include <linux/random.h>static int __init …

【Linux】随机数的生成

生成随机数目录 生成随机数&#xff1a;默认为(0-32767)生成指定区间随机数&#xff1a;随机生成1-50之间的数随机生成时间戳秒和纳秒加密运算生成一个随机字符指定10个在使用md5sum校验/dev/random是什么&#xff1f; 生成随机的UUID加密算法相关文章 生成随机数&#xff1a;默…

zkw线段树(详解)

定义 我们已经了解了线段树的许多操作与结构 但是有一些缺点: 1.它是递归操作的 所以空间可能会很大 2.叶子节点深度都不同 这样操作会很麻烦 3.代码量太大... 所以现在可以引进zkw线段树 和普通的线段树相比,zkw线段树主要有这样几个不同点: 1.所有的叶子结点都在…

数据结构-线段树

如上图&#xff1a; 线段树是一颗满二叉树&#xff0c;叶子节点如果没有值&#xff0c;用null表示。 非空叶子节点就是基础数据&#xff0c;树中每个父亲节点代表左右孩子的结果集&#xff08;比如求合&#xff0c;最大值&#xff0c;最小值等&#xff0c;自己定义算法&#x…

线段树模板

线段树是我接触到的第一个高级数据结构&#xff0c;也是我接触过的模板最长的一种代码&#xff0c;但他的实用性真的很强&#xff0c;绝大部分的区间问题都可以用线段树解决点&#xff0c;所以今天我打算简单介绍一下我对线段树的理解 先放一张百度来的线段树图片&#xff1a;…

C++ 线段树

目录&#xff1a; 线段树基本常识 线段树的的存储 线段树的基本操作 1. 建树 2. 单点查询 3. 单点修改 4. 区间查询 5. 区间修改 例题推荐&#xff1a; 线段树 1 线段树 2 线段树基本常识 线段树是一种二叉搜索树&#xff08;即每个节点最多有两颗子树&#xff09;&…

线段树(java)

线段树描述&#xff1a; 线段树是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数&#xff0c;时间复杂度为O(logN)。而未…

什么是线段树

线段树的概念 线段树是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b]&#xff0c;它的左儿子表示的区间为[a,(ab)/2]&#xff0c;右儿…