DD(1) | General Commands Manual | DD(1) |
NAME
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中,它的值是固定的。)
選項
- if=file
- 從 file 中讀而不是標準輸入。
- of=file
- 寫到 file 裡去而不是標準輸出。除非指定 conv=notrunc ,否則, dd 將把 file 截為O位元組(或由 seek= 選項指定的大小)
- ibs=bytes
- 一次讀 bytes 位元組。預設是512。
- obs=bytes
- 一次寫 bytes 位元組。預設是512。
- bs=bytes
- 一次讀和寫 bytes 位元組。這將覆蓋 ibs 和 obs 設定的值(並且,設定 bs 不等於同時將 ibs 和 obs 設為同一個值,至少在 只使用 sync, noerror 或 notrunc 轉換時是這樣的。因為bs規定,每個輸入塊都應作為單獨 的資料塊複製到輸出,而不把較短的塊組合到一起)。
- cbs=bytes
- 為 block 轉換和 unblock 轉換指定轉換塊的大小。
- skip=blocks
- 在複製之前,跳過輸入檔案的前 blocks 塊,每塊大小為 ibs-byte 位元組。
- seek=blocks
- 在複製之前,跳過輸出檔案的前 blocks 塊,每塊大小為 obs-byte 位元組。
- count=blocks
- 只複製輸入檔案的前 blocks 塊(每塊的大小為 ibs-byte 位元組),而不是全部內容,直到檔案末尾。
- conv=轉換"[,"轉換"]..."
- 將檔案按 轉換 引數指定的方式轉換(在“,”兩邊沒有空格)。
轉換方式包括:
- ascii
- 將EBCDIC轉換成ascii。
- ebcdic
- 將ascii轉換成ebcdic。
- ibm
- 將ascii轉換成alternative ebcdic。
- block
- 每一行輸入,無論長短,輸出都是 cbs 位元組,並且其中的“換行”(NEWLINE,即c中的'0)用 空格替換。如有必要,行尾會填充空格。
- unblock
- 用“換行”替換每個輸入塊( cbs 位元組大小)末尾的空格。
- lcase
- 將大寫字母轉換成小寫。
- ucase
- 將小寫字母轉換成大寫。
- swab
- 交換每對輸入位元組。如果讀入的位元組數是奇數,最後 一個位元組只是簡單的複製到輸出(因為沒有能跟它交換的 位元組了)(POSIX 1003.26,PASC翻譯1003.2 3號和4號)。
- noerror
- 發生讀錯誤時,繼續進行。
- notrunc
- 不截斷輸出檔案。
- sync
- 用0填充到每個輸入塊的末尾,使其大小為 ibs 位元組。
GNU標準選項
環境變數
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
[中國Linux論壇man手冊頁翻譯計劃]
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
November 1998 | GNU fileutils 4.0 |