Linux命令 dd - 復(fù)制文件并對原文件的內(nèi)容進(jìn)行轉(zhuǎn)換和格式化處理

2021-11-08 14:46 更新

dd

復(fù)制文件并對原文件的內(nèi)容進(jìn)行轉(zhuǎn)換和格式化處理

補(bǔ)充說明

dd命令 用于復(fù)制文件并對原文件的內(nèi)容進(jìn)行轉(zhuǎn)換和格式化處理。dd命令功能很強(qiáng)大的,對于一些比較底層的問題,使用dd命令往往可以得到出人意料的效果。用的比較多的還是用dd來備份裸設(shè)備。但是不推薦,如果需要備份oracle裸設(shè)備,可以使用rman備份,或使用第三方軟件備份,使用dd的話,管理起來不太方便。

建議在有需要的時候使用dd 對物理磁盤操作,如果是文件系統(tǒng)的話還是使用tar backup cpio等其他命令更加方便。另外,使用dd對磁盤操作時,最好使用塊設(shè)備文件。

語法

dd(選項)

選項

bs=<字節(jié)數(shù)>:將ibs(輸入)與obs(輸出)設(shè)成指定的字節(jié)數(shù);
cbs=<字節(jié)數(shù)>:轉(zhuǎn)換時,每次只轉(zhuǎn)換指定的字節(jié)數(shù);
conv=<關(guān)鍵字>:指定文件轉(zhuǎn)換的方式;
count=<區(qū)塊數(shù)>:僅讀取指定的區(qū)塊數(shù);
ibs=<字節(jié)數(shù)>:每次讀取的字節(jié)數(shù);
obs=<字節(jié)數(shù)>:每次輸出的字節(jié)數(shù);
of=<文件>:輸出到文件;
seek=<區(qū)塊數(shù)>:一開始輸出時,跳過指定的區(qū)塊數(shù);
skip=<區(qū)塊數(shù)>:一開始讀取時,跳過指定的區(qū)塊數(shù);
--help:幫助;
--version:顯示版本信息。

實(shí)例

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

[root@localhost text]# du -sh sun.txt 
1.1M    sun.txt

該命令創(chuàng)建了一個1M大小的文件sun.txt,其中參數(shù)解釋:

  • if 代表輸入文件。如果不指定if,默認(rèn)就會從stdin中讀取輸入。
  • of 代表輸出文件。如果不指定of,默認(rèn)就會將stdout作為默認(rèn)輸出。
  • bs 代表字節(jié)為單位的塊大小。
  • count 代表被復(fù)制的塊數(shù)。
  • /dev/zero 是一個字符設(shè)備,會不斷返回0值字節(jié)(\0)。

塊大小可以使用的計量單位表

單元大小代碼
字節(jié)(1B)c
字節(jié)(2B)w
塊(512B)b
千字節(jié)(1024B)k
兆字節(jié)(1024KB)M
吉字節(jié)(1024MB)G

以上命令可以看出dd命令來測試內(nèi)存操作速度:

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

生成隨機(jī)字符串

我們甚至可以使用 /dev/urandom 設(shè)備配合 dd 命令 來獲取隨機(jī)字符串。

[root@localhost ~]# dd if=/dev/urandom bs=1 count=15|base64 -w 0
15+0 records in
15+0 records out
15 bytes (15 B) copied, 0.000111993 s, 134 kB/s
wFRAnlkXeBXmWs1MyGEs


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號