Linux dd命令
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 cmd@hdd-desktop:~$ 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
輸入以上命令後按回車鍵,輸入字串,再按回車鍵,按組合鍵Ctrl+D 退出,出現以下結果:
$ dd conv=ucase Hello Linux! #輸入字串後按回車鍵 HELLO LINUX! #按組合鍵Ctrl+D退出,轉換成大寫結果 記錄了0+1 的讀入 記錄了0+1 的寫出 13位元組(13 B)已複製,12.1558 秒,0.0 KB/s