linux dd 文件(linux有什么用)

本篇文章给大家谈谈linux dd 文件,以及linux有什么用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

linux下dd命令详解

linux下dd命令详解有哪些?让我们一起来了解下。

dd命令用于指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

参考例子:

在Linux下制作启动盘:

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

参数:

if=文件名:输入文件名,默认为标准输入。即指定源文件。

of=文件名:输出文件名,默认为标准输出。即指定目的文件。

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:显示版本信息

今天的分享就是这些,希望能帮助大家。

Linux系统中使用dd命令来转换和拷贝文件

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命令问题

dd是一个Unix和类Unix系统上的命令,主要功能为转换和复制文件。

在Unix上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)就像普通文件一样,出现在文件系统中;只要在各自的驱动程序中实现了对应的功能,dd也可以读取自和/或写入到这些文件。这样,dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在ASCII与EBCDIC编码间互换。

dd的名字可能来源于IBM的工作控制语言(JCL)中的DD语句,意为“Data Description”(数据描述)的缩写。该命令的语句与JCL中的相似,而与其他Unix命令较不同,因此这可能是个玩笑。另一种解释是“cc”(根据命令自身的描述,为“convert and copy”(转换和复制))已经被C语言编译器(C compiler)所占。

dd命令由单一UNIX规范的一部分,IEEE标准1003.1-2008所规定。

阅读剩余
THE END