linux轉(zhuǎn)換和復制文件是什么-dd 命令使用與實例

linux轉(zhuǎn)換和復制文件是什么-dd 命令使用與實例

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 

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享