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所规定。