dd命令能夠轉換和拷貝文件。能方便地實現對文件較底層的操作的操作。
命令行選項
bs=BYTES
:制定每次讀寫操作塊的單位,默認512字節。會覆蓋ibs和obs的值。
ibs=BYTES
,obs=BYTES
:ibs指定讀操作單位,obs指定寫操作單位
count=N
:進行操作的塊的數量,不指定會讀完整個文件。
if=FILE
:從指定文件讀入,默認stdin
of=FILE
:從指定文件寫入,默認stdout
部分特殊的路徑:
/dev/zero:無限0源,從該文件可以讀入任意數量的0。在windows版本的dd中,/dev/zero作爲dd的一部分被實現。
/dev/null:黑洞,能接收任意數量的數據。在windows中,任意目錄下的nul
文件有類似的功能。
conv=CONVS
:設置轉換選項。多個選項使用逗號分隔開。
nocreat:不要創建輸出文件
notrunc:不要截斷輸出文件
noerror:忽略錯誤並繼續
iflag=FLAGS
:輸入標誌設置。多個選項使用逗號分隔開。
oflag=FLAGS
:輸出標誌設置。多個選項使用逗號分隔開。
append:添加到文件末尾。與notrunc連用防止之前的數據被清零。
seek=N
:跳過從輸出文件開頭算起,N塊obs大小的數據。
skip=N
:跳過從輸入文件開頭算起,N塊ibs大小的數據。
輸出信息
一般完成後可以看到x+y records in
(x,y顯示爲常數)。表示讀(寫)操作完整執行了x個block,還有y個block沒達到bs大小。
一些應用
1). 複製文件
dd if=src of=dest
這裏src大小不需要是bs的整數倍也能夠正確的複製。
2). 顯示文件大小
dd if=src of=/dev/null
3). 創建文件
dd bs=BYTES count=N if=/dev/zero of=dest
4). 在末尾添加字節
dd bs=BYTES count=N conv=notrunc oflags=append if=/dev/zero of=dest