DD(1) General Commands Manual DD(1)

dd - 轉換和複製檔案

摘要

dd [--help] [--version] [if=file] [of=file] [ibs=bytes] [obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks] [seek=blocks] [count=blocks] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]

描述

當進行非強制的轉換的時候,使用指定的輸入和輸出塊大小複製檔案 (預設是從標準輸入到標準輸出。)

它每次從輸入讀取指定大小的一個塊(預設是512位元組)。 如果使用 bs=bytes 選項,並且沒有轉換,除了指定 sync, noerror, 或 notrunc 之外, 那麼dd將把全部讀到的資料(可以比請求讀的少) 寫到獨立的輸出塊去。 這個輸出塊的長度和讀到的資料 完全一樣,除非指定使用 sync(同步) 轉換,那樣的話,資料結尾處將追加NUL字元(或空格,見下)。

其他情況下,輸入的時候每次讀一個塊,然後處理,並將 輸出結果收集起來,最後寫到指定大小的資料塊中去。最 終的輸出塊可能會比指定的大小短一些。

數字值選項(以位元組或塊為單位)後面可以跟一個乘數: k=1024,b=512,w=2,c=1(w和c是GNU擴充套件語法。最好別 使用w,因為在system V中,它表示2,在4.2 BSD中,它 表示4)。兩個或更多的數值表示式可以透過“x”乘起來。 GEU fileutils 4.0並且允許在資料塊大小的敘述中使用 下列乘法字尾(用bs=,cbs=,obs=):M=1048576,G=1073741824, 同理可得T,P,E,Z,Y。D字尾表示數值是以 十進位制表示的:kD=1000 MD=1000000 GD=1000000000等等。 (注意,在ls、df、du命令中,M等標記的大小是由環境 變數確定的,而在DD中,它的值是固定的。)

選項

file 中讀而不是標準輸入。
寫到 file 裡去而不是標準輸出。除非指定 conv=notrunc ,否則, dd 將把 file 截為O位元組(或由 seek= 選項指定的大小)
一次讀 bytes 位元組。預設是512。
一次寫 bytes 位元組。預設是512。
一次讀和寫 bytes 位元組。這將覆蓋 ibsobs 設定的值(並且,設定 bs 不等於同時將 ibsobs 設為同一個值,至少在 只使用 sync, noerrornotrunc 轉換時是這樣的。因為bs規定,每個輸入塊都應作為單獨 的資料塊複製到輸出,而不把較短的塊組合到一起)。
block 轉換和 unblock 轉換指定轉換塊的大小。
在複製之前,跳過輸入檔案的前 blocks 塊,每塊大小為 ibs-byte 位元組。
在複製之前,跳過輸出檔案的前 blocks 塊,每塊大小為 obs-byte 位元組。
只複製輸入檔案的前 blocks 塊(每塊的大小為 ibs-byte 位元組),而不是全部內容,直到檔案末尾。
將檔案按 轉換 引數指定的方式轉換(在“,”兩邊沒有空格)。

轉換方式包括:

將EBCDIC轉換成ascii。
將ascii轉換成ebcdic。
將ascii轉換成alternative ebcdic。
每一行輸入,無論長短,輸出都是 cbs 位元組,並且其中的“換行”(NEWLINE,即c中的'0)用 空格替換。如有必要,行尾會填充空格。
用“換行”替換每個輸入塊( cbs 位元組大小)末尾的空格。
將大寫字母轉換成小寫。
將小寫字母轉換成大寫。
交換每對輸入位元組。如果讀入的位元組數是奇數,最後 一個位元組只是簡單的複製到輸出(因為沒有能跟它交換的 位元組了)(POSIX 1003.26,PASC翻譯1003.2 3號和4號)。
發生讀錯誤時,繼續進行。
不截斷輸出檔案。
用0填充到每個輸入塊的末尾,使其大小為 ibs 位元組。

將用法資訊列印到標準輸出,併成功退出。
將版本資訊列印到標準輸出,併成功退出。
--
結束選項列表。

環境變數

LANG, LC_ALL, LC_CTYPE和LC_MESSAGES具有其通常含義。

遵循標準

POSIX 1003.2

舉例

磁帶機通常不能接受任意大小的資料塊,當最後一個數據片 段不能充滿整個塊時, dd 將出現I/O錯誤。用'dd if=myfile of=/dev/mytape conv=sync' 就可以使全部內容存到磁帶上。當然,這樣做,把檔案從磁 帶上讀回時回產生一個稍大些的檔案,因為其尾部填充了一 些NUL(空字元)。

本手冊頁描述了fileutils-4.0軟體包中的 dd 命令。其他版 本的dd會與此稍有不同。有關更正和補充可以發帖到中國linux 論壇-man手冊版。報告程式中的錯誤,請給 fileutils-bugs2gnu.ai.wit.edu 發郵件。

astonia <email>

2000/10/19

http://cmpp.linuxforum.net

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

November 1998 GNU fileutils 4.0