dd - 转换和拷贝文件

当进行非强制的转换的时候,使用指定的输入和输出块大小拷贝文件 (默认是从标准输入到标准输出。)

它每次从输入读取指定大小的一个块(默认是512字节)。 如果使用 bs=bytes 选项,并且没有转换,除了指定 sync, noerror, 或 notrunc 之外, 那么dd将把全部读到的数据(可以比请求读的少) 写到独立的输出块去。 这个输出块的长度和读到的数据 完全一样,除非指定使用 sync(同步) 转换,那样的话,数据结尾处将追加NUL字符(或空格,见下)。

其他情况下,输入的时候每次读一个块,然后处理,并将 输出结果收集起来,最后写到指定大小的数据块中去。最 终的输出块可能会比指定的大小短一些。

如果你想要在线看 manual, 可以试试:

dd --help

或是

info dd

如果你想要看看这个版本如何:

dd --version

输入或输出

dd if=[STDIN] of=[STDOUT]

强迫输入或输出的Size为多少Bytes

bs: dd -ibs=[BYTE] -obs=[SIZE]

强迫一次只做多少个 Bytes

cbs=BYTES

跳过一段以后才输出

seek=BLOCKS

跳过一段以后才输入

skip=BLOCKS

当然你可以拿这个来方便的拷贝光碟(注意,你的光碟是标准的 iso9660格式才可以这么做唷!)

dd if=/dev/cdrom of=cdrom.iso

其中 if 后面以及 of 后面的内容依你的需求调整。

然后给系统这个指令就可以烧了:

cdrecord -v cdrom.iso

这篇不是在讲 cdrecord 的,所以上面的指令是最为简单但是不一定能符合您的硬件环境...

功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。

if=file

从 file 中读而不是标准输入。

of=file

写到 file 里去而不是标准输出。除非指定 conv=notrunc ,否则, dd 将把 file 截为O字节(或由 seek= 选项指定的大小)

ibs=bytes

一次读 bytes 字节。默认是512。

obs=bytes

一次写 bytes 字节。默认是512。

bs=bytes

一次读和写 bytes 字节。这将覆盖 ibs 和 obs 设定的值(并且,设定 bs 不等于同时将 ibs 和 obs 设为同一个值,至少在 只使用 sync, noerror 或 notrunc 转换时是这样的。因为bs规定,每个输入块都应作为单独 的数据块拷贝到输出,而不把较短的块组合到一起)。

cbs=bytes

为 block 转换和 unblock 转换指定转换块的大小。

skip=blocks

在拷贝之前,跳过输入文件的前 blocks 块,每块大小为 ibs-byte 字节。

seek=blocks

在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节。

count=blocks

只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte 字节),而不是全部内容,直到文件末尾。

转换

conv=转换[,转换]...

将文件按 转换 参数指定的方式转换(在lq,rq两边没有空格)。

转换方式包括:

ascii

将EBCDIC转换成ascii。

ebcdic

将ascii转换成ebcdic。

ibm

将ascii转换成alternative ebcdic。

block

每一行输入,无论长短,输出都是 cbs 字节,并且其中的lq换行rq(NEWLINE,即c中的')用 空格替换。如有必要,行尾会填充空格。

unblock

用lq换行rq替换每个输入块( cbs 字节大小)末尾的空格。

lcase

将大写字母转换成小写。

ucase

将小写字母转换成大写。

swab

交换每对输入字节。如果读入的字节数是奇数,最后 一个字节只是简单的复制到输出(因为没有能跟它交换的 字节了)(POSIX 1003.26,PASC翻译1003.2 3号和4号)。

noerror

发生读错误时,继续进行。

notrunc

不截断输出文件。

sync

用0填充到每个输入块的末尾,使其大小为 ibs 字节。

例:

复制代码

代码如下:

[root@localhost ~]# dd if=/dev/hdx of=/dev/hdy #将本地的/dev/hdx整盘备份到/dev/hdy

[root@localhost ~]# dd if=/dev/hdx of=/path/to/image #将/dev/hdx全盘数据备份到指定路径的image文件

[root@localhost ~]# dd if=/dev/hdx | gzip >/path/to/image.gz #备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径

[root@localhost ~]# dd if=/path/to/image of=/dev/hdx # 将备份文件恢复到指定盘

[root@localhost ~]# gzip -dc /path/to/image.gz | dd of=/dev/hdx #将压缩的备份文件恢复到指定盘

[root@localhost ~]# dd if=/dev/hdx of=/path/to/image count=1 bs=512 #备份磁盘开始的512Byte大小的MBR信息到指定文件

[root@localhost ~]# dd if=/dev/cdrom of=/root/cd.iso #拷贝光盘数据到root文件夹下,并保存为cd.iso文件

linux dd 拷贝文件,Linux系统中使用dd命令来转换和拷贝文件相关推荐

  1. Linux系统中,python需要import上一级目录文件的解决办法

    Linux系统中,python需要import上一级目录文件的解决办法 在import前添加代码: import sys import os sys.path.append(os.path.abspa ...

  2. linux 按名字查找文件夹,详细解读linux系统中使用Find命令查找文件

    摘要:文件查找是一个经常用到的功能,在linux系统中查找文件的命令比较多:find.locate.whereis .which等,今天心月就来详细解读find文件查找命令的使用. 文件查找是一个经常 ...

  3. linux 杀掉php,Linux_在Linux系统中使用xkill命令杀掉未响应的进程,我们如何在Linux中杀掉一个资 - phpStudy...

    在Linux系统中使用xkill命令杀掉未响应的进程 我们如何在Linux中杀掉一个资源/进程?很明显我们会找出资源的pid然后用kill命令. 说的更明白一点,我们可以找到某个资源(比如termin ...

  4. ss流量查询 php,Linux_Linux怎么使用ss命令查看系统的socket状态,  Linux系统中,ss命令可用于 - phpStudy...

    Linux怎么使用ss命令查看系统的socket状态 Linux系统中,ss命令可用于查看系统的socket的状态,而socket作为系统的进程通信机制,了解其状态是很有必要的,下面小编就给大家介绍下 ...

  5. linux sudo命令全称,你知道Linux系统中的sudo 命令吗?

    今天小编要跟大家分享的文章是关于Linux系统中sudo命令介绍.熟悉Linux操作系统的小伙伴们你们是否了解sudo命令.sudo 表示 "superuser do". 它允许已 ...

  6. 我的linux系统怎么输入pv,如何在Linux系统中使用pv命令

    本文介绍了如何在Linux系统中使用pv命令.内容很详细.有兴趣的朋友可以参考一下,希望对大家有帮助. PV 命令 PV由Andrew Wood开发,是Pipe Viewer的简称,意思是通过管道显示 ...

  7. linux系统下的shell是什么,Linux系统中shell各命令的区别有什么?

    今天小编要跟大家分享的文章是关于Linux系统中shell各命令的区别有什么?喜欢Linux系统并对此感兴趣的小伙伴们快来一起看一看吧~希望对你有所帮助. 1.xargs作用: (1)将前一个命令的标 ...

  8. Linux操作系统中man命令的用法,Linux 系统中的MAN命令使用祥解

    Linux 系统中的MAN命令使用祥解 在使用Linux命令或程序的过程中,大家免不了要看看命令和程序的帮助文档.这就要使用到man命令.下面就man命令使用的方法具体说一下: 1.man 的使用语法 ...

  9. Linux系统怎么使用扫描仪,Linux系统中Nmap扫描命令的使用方法 -电脑资料

    我们可以使用ping扫描的方法(-sP),与fping的工作方式比较相似,它发送icmp回送请求到指定范围的ip地址并等待响应,证明主机正在运行,反之,则无法判断主机是否开机或者是否在网络上互连. 扫 ...

  10. linux管道命令详解,Linux系统中的管道命令的用法详解

    Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...

最新文章

  1. 怎么修照片多余的部分_10 个摄影小技巧,让你的照片拿到超多赞!
  2. verilog中对inout信号的处理
  3. pl/sql developer执行光标所在行
  4. 还是两个数的交换问题
  5. android4.0 编译报错 Xmx2048m错误 .
  6. BAT 才不关心币价,19年的5大重点在这里!
  7. mysql 视图 字符集_MySQL创建子视图并查看的时候,字符集报错问题
  8. Visual C++——CComboBox控件在对话框中没有下拉项目问题解决方案
  9. PHP Mysql-创建数据表
  10. hibernate jpa_JPA / Hibernate:基于版本的乐观并发控制
  11. 实用的 Python —— 使用虚拟环境 virtualenv(Linux)
  12. HDU 6319 Problem A. Ascending Rating (单调队列)
  13. 计算机now函数,玩转NOW函数 日期时间随心变
  14. PyTorch创建自己的图像分类数据集
  15. php海外话费充值游戏币,海外(国外)充值话费方法
  16. 优化店铺标题的好处在哪?如何写标题,什么样的标题能带来流量?
  17. jQuery UI Dialog
  18. iOS安全逆向之旅---逆向基本知识概要介绍
  19. 华为HCIA考试全解答
  20. C语言(二):数据类型

热门文章

  1. DiskFileUpload上传文件并获取前端表单数据
  2. u-boot 设置mac 地址
  3. 高通平台开机LOGO的修改与兼容
  4. 【Anylogic智能体状态转移】
  5. Fortran入门教程(九)——文件
  6. 嵌入式ARM(Allwinner H3)下使用rtl8188eus无线网卡
  7. newtonsoft.json java,Newtonsoft.Json无法反序列化有效的JSON
  8. nbu备份脚本 linux,NBU60网络备份大全之Linux设备管理(参考Word)
  9. oCam(屏幕录制) 一款小巧方便的专业屏幕录制软件 彻底解决你的录屏问题
  10. Mysql中修改字段类型、长度以及添加删除列