dd
複製文件並對原文件的內容進行轉換和格式化處理
補充說明
dd命令 用於複製文件並對原文件的內容進行轉換和格式化處理。dd命令功能很強大的,對於一些比較底層的問題,使用dd命令往往可以得到出人意料的效果。用的比較多的還是用dd來備份裸設備。但是不推薦,如果需要備份oracle裸設備,可以使用rman備份,或使用第三方軟件備份,使用dd的話,管理起來不太方便。
建議在有需要的時候使用dd 對物理磁盤操作,如果是文件系統的話還是使用tar backup cpio等其他命令更加方便。另外,使用dd對磁盤操作時,最好使用塊設備文件。
語法
1dd(選項)
選項
1bs=<字節數>:將ibs(輸入)與obs(輸出)設成指定的字節數;
2cbs=<字節數>:轉換時,每次只轉換指定的字節數;
3conv=<關鍵字>:指定文件轉換的方式;
4count=<區塊數>:僅讀取指定的區塊數;
5ibs=<字節數>:每次讀取的字節數;
6obs=<字節數>:每次輸出的字節數;
7if=<文件>:輸入文件;
8of=<文件>:輸出到文件;
9seek=<區塊數>:一開始輸出時,跳過指定的區塊數;
10skip=<區塊數>:一開始讀取時,跳過指定的區塊數;
11--help:幫助;
12--version:顯示版本信息。
實例
1[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
21+0 records in
31+0 records out
41048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
5
6[root@localhost text]# du -sh sun.txt
71.1M sun.txt
該命令創建了一個1M大小的文件sun.txt,其中參數解釋:
- if 代表輸入文件。如果不指定if,默認就會從stdin中讀取輸入。
- of 代表輸出文件。如果不指定of,默認就會將stdout作爲默認輸出。
- bs 代表字節爲單位的塊大小。
- count 代表被複制的塊數。
- /dev/zero 是一個字符設備,會不斷返回0值字節(\0)。
塊大小可以使用的計量單位表
單元大小 | 代碼 |
---|---|
字節(1B) | c |
字節(2B) | w |
塊(512B) | b |
千字節(1024B) | k |
兆字節(1024KB) | M |
吉字節(1024MB) | G |
以上命令可以看出dd命令來測試內存操作速度:
11048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
生成隨機字符串
我們甚至可以使用 /dev/urandom 設備配合 dd 命令 來獲取隨機字符串。
1[root@localhost ~]# dd if=/dev/urandom bs=1 count=15|base64 -w 0
215+0 records in
315+0 records out
415 bytes (15 B) copied, 0.000111993 s, 134 kB/s
5wFRAnlkXeBXmWs1MyGEs
測試磁盤寫入速度
1[root@localhost ~]# dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
21+0 records in
31+0 records out
41073741824 bytes (1.1 GB) copied, 7.10845 s, 151 MB/s
測試磁盤讀取速度
1[root@localhost ~]# dd if=/tmp/testfile of=/dev/null bs=1G count=1 iflag=direct
21+0 records in
31+0 records out
41073741824 bytes (1.1 GB) copied, 6.53009 s, 164 MB/s
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。