dd - 轉(zhuǎn)換和拷貝文件
當進行非強制的轉(zhuǎn)換的時候,使用指定的輸入和輸出塊大小拷貝文件 (默認是從標準輸入到標準輸出。)
它每次從輸入讀取指定大小的一個塊(默認是512字節(jié))。 如果使用 bs=bytes 選項,并且沒有轉(zhuǎn)換,除了指定 sync, noerror, 或 notrunc 之外, 那么dd將把全部讀到的數(shù)據(jù)(可以比請求讀的少) 寫到獨立的輸出塊去。 這個輸出塊的長度和讀到的數(shù)據(jù) 完全一樣,除非指定使用 sync(同步) 轉(zhuǎn)換,那樣的話,數(shù)據(jù)結(jié)尾處將追加NUL字符(或空格,見下)。
其他情況下,輸入的時候每次讀一個塊,然后處理,并將 輸出結(jié)果收集起來,最后寫到指定大小的數(shù)據(jù)塊中去。最 終的輸出塊可能會比指定的大小短一些。
如果你想要在線看 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 后面的內(nèi)容依你的需求調(diào)整。
然后給系統(tǒng)這個指令就可以燒了:
cdrecord -v cdrom.iso
這篇不是在講 cdrecord 的,所以上面的指令是最為簡單但是不一定能符合您的硬件環(huán)境...
功能:把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝過程中可以進行格式轉(zhuǎn)換??梢杂迷撁顚崿F(xiàn)DOS下的diskcopy命令的作用。先用dd命令把軟盤上的數(shù)據(jù)寫成硬盤的一個寄存文件,再把這個寄存文件寫入第二張軟盤上,完成diskcopy的功能。需要注意的是,應該將硬盤上的寄存文件用rm命令刪除掉。系統(tǒng)默認使用標準輸入文件和標準輸出文件。
if=file
從 file 中讀而不是標準輸入。
of=file
寫到 file 里去而不是標準輸出。除非指定 conv=notrunc ,否則, dd 將把 file 截為O字節(jié)(或由 seek= 選項指定的大?。?
ibs=bytes
一次讀 bytes 字節(jié)。默認是512。
obs=bytes
一次寫 bytes 字節(jié)。默認是512。
bs=bytes
一次讀和寫 bytes 字節(jié)。這將覆蓋 ibs 和 obs 設(shè)定的值(并且,設(shè)定 bs 不等于同時將 ibs 和 obs 設(shè)為同一個值,至少在 只使用 sync, noerror 或 notrunc 轉(zhuǎn)換時是這樣的。因為bs規(guī)定,每個輸入塊都應作為單獨 的數(shù)據(jù)塊拷貝到輸出,而不把較短的塊組合到一起)。
cbs=bytes
為 block 轉(zhuǎn)換和 unblock 轉(zhuǎn)換指定轉(zhuǎn)換塊的大小。
skip=blocks
在拷貝之前,跳過輸入文件的前 blocks 塊,每塊大小為 ibs-byte 字節(jié)。
seek=blocks
在拷貝之前,跳過輸出文件的前 blocks 塊,每塊大小為 obs-byte 字節(jié)。
count=blocks
只拷貝輸入文件的前 blocks 塊(每塊的大小為 ibs-byte 字節(jié)),而不是全部內(nèi)容,直到文件末尾。
轉(zhuǎn)換
conv=轉(zhuǎn)換[,轉(zhuǎn)換]...
將文件按 轉(zhuǎn)換 參數(shù)指定的方式轉(zhuǎn)換(在lq,rq兩邊沒有空格)。
轉(zhuǎn)換方式包括:
ascii
將EBCDIC轉(zhuǎn)換成ascii。
ebcdic
將ascii轉(zhuǎn)換成ebcdic。
ibm
將ascii轉(zhuǎn)換成alternative ebcdic。
block
每一行輸入,無論長短,輸出都是 cbs 字節(jié),并且其中的lq換行rq(NEWLINE,即c中的')用 空格替換。如有必要,行尾會填充空格。
unblock
用lq換行rq替換每個輸入塊( cbs 字節(jié)大?。┠┪驳目崭瘛?
lcase
將大寫字母轉(zhuǎn)換成小寫。
ucase
將小寫字母轉(zhuǎn)換成大寫。
swab
交換每對輸入字節(jié)。如果讀入的字節(jié)數(shù)是奇數(shù),最后 一個字節(jié)只是簡單的復制到輸出(因為沒有能跟它交換的 字節(jié)了)(POSIX 1003.26,PASC翻譯1003.2 3號和4號)。
noerror
發(fā)生讀錯誤時,繼續(xù)進行。
notrunc
不截斷輸出文件。
sync
用0填充到每個輸入塊的末尾,使其大小為 ibs 字節(jié)。
例:
[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全盤數(shù)據(jù)備份到指定路徑的image文件
[root@localhost ~]# dd if=/dev/hdx | gzip >/path/to/image.gz #備份/dev/hdx全盤數(shù)據(jù),并利用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 #拷貝光盤數(shù)據(jù)到root文件夾下,并保存為cd.iso文件