1. 程式人生 > >Linux命令之dd

Linux命令之dd

dir not 空格 ext UNC tty 緩存 填充 同時

dd [OPERAND]

dd 選項

復制一個文件,根據[OPERAND]進行轉換和格式化

(1). OPERAND參數

說明1:dd的選項只有’--help’和’--version’,也就是幫助與版本信息。而下列都是[操作數],而非選項。

說明2:讀取是輸入,寫入是輸出

bs=BYTES 同時設置讀取和寫入(輸入ibs輸出obs)的塊大小為BYTES個字節

cbs=BYTES 一次轉換BYTES個字節,即指定轉換緩沖區大小

conv=CONVERSION[,CONVERSION] 用指定參數轉換文件

count=N 僅拷貝N個塊,塊大小等於ibs指定的字節數

ibs=BYTES 一次讀取BYTES個字節,即指定一個塊大小為BYTES個字節(默認512)

if=FILE 從文件讀取代替標準輸入,即指定源文件

iflag=FLAG[,FLAG] 使用FLAG參數指定的輸入方式

obs=BYTES 一次寫入BYTES個字節,即指定一個快大小為BYTES個字節(默認512)

of=FILE 寫入到文件代替標準輸出,即指定目的文件

oflag=FLAG[,FLAG] 使用FLAG參數指定的輸出方式

seek=BLOCKS 從輸出文件開頭跳過BLOCKS個輸出塊再開始復制(小心ibs和obs不一樣)

skip=BLOCKS 從輸入文件開頭跳過BLOCKS個輸入塊再開始復制(小心ibs和obs不一樣)

status=WHICH 用來控制dd程序的輸出信息。分別為noxfer,none和progress,默認為progress。none不輸出任何相關信息,錯誤信息正常輸出。noxfer不輸出最後的統計信息。progress輸出所有信息。

(2).CONVERSION參數

ascii 由ebcdic碼轉換至ascii碼

ebcdic 由ascii碼轉換至ebcdic碼

ibm 由ascii碼轉換至替換的ebcdic碼

block 對於輸入中的每一行輸出cbs個字節,用空格替換輸入換行符,必要時用空格填充

unblock 刪除cbs大小的塊的尾部空格,並添加一個換行符

lcase 將大寫字符轉換為小寫字符

nocreat 不創建輸出文件,輸出文件必須已經存在

excl 輸出文件已經存在則失敗;dd命令必須創建文件本身

notrunc 不要截斷輸出文件(不將文件長度縮短為0)

ucase 將小寫字符轉換為大寫字符

sparse 嘗試查找而不是編寫空(NUL)輸出塊。在支持稀疏文件的文件系統中,當擴展輸出文件時,這會創建稀疏輸出。

swab 交換每對字節,奇數時最後一個字節只復制

noerror 讀取數據發生錯誤後仍然繼續

sync 把每個輸入塊以空(NUL)填充至ibs大小,如果配合日block或unblock使用,則以空格代替空(NUL)填充

fdatasync 結束前將輸出文件數據寫入磁盤

fsync 類似上面,但元數據也一同寫入

(3).FLAG參數

append 追加模式。將數據拷貝到目標文件末尾,同時應該設置conv=notrunc。否則文件將在被拷貝之前清空。

cio 使用並發I/O存取模式,此模式使用直接I/O。並刪除POSIX要求,將所有I/O串行化到同一個文件。在cio模式下無法打開該文件,同時打開一個標準文件(這句話可能有錯,原文:A file cannot be opened at cio mode,and with a standard open in the same time.)。

direct 使用直接I/O存取模式,避免緩沖區高速緩存(不在內存中對文件數據進行緩存)

directory 僅拷貝文件夾,因為很多系統不支持對文件夾進行I/O操作,所以不太實用。

dsync 使用同步I/O模式讀寫數據。每次寫的時候,都強制進行一次物理寫入(寫入/保存到磁盤)

sync 數據和元數據都使用同步I/O模式。

fullblock 直到填充萬一個塊後才返回

nonblack 使用非阻塞I/O

noatime 不改變文件的訪問時間

noctty 不對dd使用指定的文件作為控制終端

nofollow 不跟隨符號鏈接

nolinks 如果有多個硬鏈接則失敗(硬鏈接和軟鏈接也就是符號鏈接,自己查一下吧,有點復雜)

binary 使用二進制I/O

text使用text I/0

count_bytes 將count的單位設置為字節,而不是塊

(4).塊大小可以使用的計量單位

單位大小

代碼

字節(1B)

c

字節(2B)

w

塊(512B)

b

千字節(1024B)

k

兆字節(1024KB)

M

吉字節(1024MB)

G

Linux命令之dd