linux dd 命令
在 Linux 系統(tǒng)中,dd 命令主要用于讀取、轉(zhuǎn)換并輸出數(shù)據(jù)內(nèi)容。
該命令可以從標準輸入或指定文件中讀取數(shù)據(jù),并根據(jù)設定的格式進行轉(zhuǎn)換處理,最后輸出到文件、設備或者標準輸出接口。
常用參數(shù)介紹:
- if=文件名:定義輸入文件,默認為標準輸入。用于指明原始數(shù)據(jù)來源。
- of=文件名:定義輸出文件,默認為標準輸出。用于指定目標存儲位置。
- ibs=bytes:設置每次讀取的字節(jié)數(shù),表示以 bytes 字節(jié)為單位進行讀取操作。
obs=bytes:設置每次寫入的字節(jié)數(shù),表示以 bytes 字節(jié)為單位進行寫入操作。
bs=bytes:同時設定讀取與寫入的塊大小為 bytes 字節(jié)。 - cbs=bytes:設定每次轉(zhuǎn)換的字節(jié)數(shù),即轉(zhuǎn)換緩沖區(qū)的大小。
- skip=blocks:跳過輸入文件起始處 blocks 個塊后再開始復制。
- seek=blocks:跳過輸出文件起始處 blocks 個塊后再開始寫入。
- count=blocks:僅復制 blocks 個塊,每個塊的大小由 ibs 指定。
- conv=,支持以下11種轉(zhuǎn)換選項:
- conversion:按指定方式進行文件轉(zhuǎn)換。
- ASCII:將 ebcdic 編碼轉(zhuǎn)為 ascii 編碼
- ebcdic:將 ascii 編碼轉(zhuǎn)為 ebcdic 編碼
- ibm:將 ascii 轉(zhuǎn)換為另一種 ebcdic 編碼
- block:將每一行轉(zhuǎn)換為長度為 cbs 的塊,不足部分用空格填充
- unblock:使每行長度等于 cbs,不足部分用空格補齊
- lcase:將大寫字母轉(zhuǎn)為小寫
- ucase:將小寫字母轉(zhuǎn)為大寫
- swap:交換每對輸入字節(jié)
- noerror:發(fā)生錯誤時繼續(xù)執(zhí)行
- notrunc:不截斷輸出文件內(nèi)容
- sync:將每個輸入塊補足到 ibs 的大小,缺失部分用 NUL 字符填充。
- –help:查看幫助信息
- –version:顯示軟件版本號
示例演示
若要在 Linux 中創(chuàng)建一個啟動盤,可使用如下命令:
dd if=boot.img of=/dev/fd0 bs=1440k
要將 testfile 文件中的所有字母轉(zhuǎn)換為大寫并保存為 testfile_1 文件,可在終端中執(zhí)行以下命令:
dd if=testfile_2 of=testfile_1 conv=ucase
其中 testfile_2 內(nèi)容如下:
$ cat testfile_2 #testfile_2的內(nèi)容 HELLO LINUX! Linux is a free unix-type opterating system. This is a linux testfile! Linux test
轉(zhuǎn)換完成后,testfile_1 內(nèi)容如下所示:
$ dd if=testfile_2 of=testfile_1 conv=ucase #執(zhí)行大小寫轉(zhuǎn)換 記錄了0+1 的讀入 記錄了0+1 的寫出 95字節(jié)(95 B)已復制,0.000131446 秒,723 KB/s cmd@hdd-desktop:~$ cat testfile_1 #查看轉(zhuǎn)換后的文件內(nèi)容 HELLO LINUX! LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. THIS IS A LINUX TESTFILE! LINUX TEST #testfile_2 中的所有字母已轉(zhuǎn)換為大寫形式
從標準輸入獲取字符串,將其全部轉(zhuǎn)為大寫后輸出至標準輸出,可以使用如下命令:
dd conv=ucase
運行上述命令后回車,輸入字符串,再次回車,然后按下 Ctrl+D 組合鍵結束輸入,效果如下:
$ dd conv=ucase Hello Linux! #輸入內(nèi)容 HELLO LINUX! #輸出結果 記錄了0+1 的讀入 記錄了0+1 的寫出 13字節(jié)(13 B)已復制,12.1558 秒,0.0 KB/s
? 版權聲明
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END