Linux dd指令用于讀取、轉換并輸出資料。
dd可從标準輸入或檔案中讀取資料,根據指定的格式來轉換資料,再輸出到檔案、裝置或标準輸出。
參數說明:
if=檔案名:輸入檔案名,預設為标準輸入。即指定源檔案。
of=檔案名:輸出檔案名,預設為标準輸出。即指定目的檔案。
ibs=bytes:一次讀入bytes個位元組,即指定一個塊大小為bytes個位元組。
obs=bytes:一次輸出bytes個位元組,即指定一個塊大小為bytes個位元組。
bs=bytes:同時設定讀入/輸出的塊大小為bytes個位元組。
cbs=bytes:一次轉換bytes個位元組,即指定轉換緩沖區大小。
skip=blocks:從輸入檔案開頭跳過blocks個塊後再開始複制。
seek=blocks:從輸出檔案開頭跳過blocks個塊後再開始複制。
count=blocks:僅拷貝blocks個塊,塊大小等于ibs指定的位元組數。
conv=,關鍵字可以有以下11種:
conversion:用指定的參數轉換檔案。
ascii:轉換ebcdic為ascii
ebcdic:轉換ascii為ebcdic
ibm:轉換ascii為alternate ebcdic
block:把每一行轉換為長度為cbs,不足部分用空格填充
unblock:使每一行的長度都為cbs,不足部分用空格填充
lcase:把大寫字元轉換為小寫字元
ucase:把小寫字元轉換為大寫字元
swab:交換輸入的每對位元組
noerror:出錯時不停止
notrunc:不截短輸出檔案
sync:将每個輸入塊填充到ibs個位元組,不足部分用空(NUL)字元補齊。
--help:顯示幫助資訊
--version:顯示版本資訊
執行個體
在Linux 下制作啟動盤,可使用如下指令:
dd if=boot.img of=/dev/fd0 bs=1440k
将testfile檔案中的所有英文字母轉換為大寫,然後轉成為testfile_1檔案,在指令提示符中使用如下指令:
dd if=testfile_2 of=testfile_1 conv=ucase
其中testfile_2 的内容為:
$ cat testfile_2 #testfile_2的内容
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
轉換完成後,testfile_1 的内容如下:
$ dd if=testfile_2 of=testfile_1 conv=ucase #使用dd 指令,大小寫轉換記錄了0+1 的讀入
記錄了0+1 的寫出
95位元組(95 B)已複制,0.000131446 秒,723 KB/s
[email protected]:~$ cat testfile_1 #檢視轉換後的testfile_1檔案内容
HELLO LINUX!
LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.
THIS IS A LINUX TESTFILE!
LINUX TEST #testfile_2中的所有字元都變成了大寫字母
由标準輸入裝置讀入字元串,并将字元串轉換成大寫後,再輸出到标準輸出裝置,使用的指令為:
dd conv=ucase
輸入以上指令後按Enter鍵,輸入字元串,再按Enter鍵,按組合鍵Ctrl+D 退出,出現以下結果:
$ dd conv=ucase
Hello Linux! #輸入字元串後按Enter鍵
HELLO LINUX! #按組合鍵Ctrl+D退出,轉換成大寫結果
記錄了0+1 的讀入
記錄了0+1 的寫出
13位元組(13 B)已複制,12.1558 秒,0.0 KB/s