dd命令用語複製文件,並對原文件的內容進行轉換和格式化處理。dd命令功能很強大對於一些比較底層的問題,使用dd命令每每能夠獲得出人意料的效果。用的比較多的仍是用dd來備份裸設備。可是不推薦,若是須要備份oracle裸設備的,可使用rman備份,或使用第三方軟件備份,使用dd的話,管理起來不太方便。git
建議在有須要的時候使用dd對物理磁盤操做,若是是文件系統的話,仍是使用tar backup cpio等其餘命令更加方便。另外,使用dd對磁盤操做時,最好使用塊設備文件。正則表達式
dd(選項)
bs=<字節數> :將ibs(輸入)與歐巴桑(輸出)設成指定的字節數。 cbs=<字節數> :轉換時,每次只轉換指定的字節數。 conv=<字節數>:指定文件轉換的方式。 count=<區塊數>:僅讀取指定的區塊數。 ibs=<字節數>:每次讀取的字節數。 obs=<字節數>:每次輸出的字節數。 of=<文件>:輸出到文件。 seek=<區塊數>:一開始輸出時,跳過指定的區塊數。 skip=<區塊數>:一開始讀取時,跳過指定的區塊數。 --help:幫助 --version:顯示版本信息
[root@ceshi dd]# 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.00395019 s, 265 MB/s [root@ceshi dd]# du -sh sun.txt 1.0M sun.txt
該命令建立了一個1M大小的文件sun.txt,其中參數解釋:oracle
塊大小可使用的計量單位表:ide
單元大小 | 代碼 |
---|---|
字節(1B) | c |
字節(2B) | w |
塊(512B) | b |
千字節(1024B) | k |
兆字節(1024KB) | M |
吉字節(1024MB) | G |
以上命令能夠看出,可使用dd命令來測試內存操做速度:測試
1048576 bytes (1.0 MB) copied, 0.00395019 s, 265 MB/s
split命令能夠將一個大文件分割成不少個小文件,有時須要將文件分割成更小的片斷,好比:爲提升可讀性,生成日誌等。ui
-b:值爲每一輸出檔案的大小,單位爲byte 。 -C:每一輸出當中,單行的最大byte數。 -d:使用數字做爲後綴。 -l:值爲每一輸出檔的列數大小。 -a length:設定length指定輸出文件的後綴的長度 -a length split_file:設定split_file指定輸出文件名的前綴
生成一個大小爲100KB的測試文件日誌
[root@ceshi split]# dd if=/dev/zero bs=100k count=1 of=date.file 1+0 records in 1+0 records out 102400 bytes (102 kB) copied, 0.000913943 s, 112 MB/s
使用split命令將上面建立的date.file文件分割成大小爲10KB的小文件:code
[root@ceshi split]# split -b 10k date.file [root@ceshi split]# ls date.file xaa xab xac xad xae xaf xag xah xai xaj
文件被分割成多個帶有字母的後綴文件,若是想用數字後綴使用-d;同時可使用-a length來指定後綴的長度:orm
[root@ceshi split]# split -b 10k date.file -d -a 3 [root@ceshi split]# ls date.file x000 x001 x002 x003 x004 x005 x006 x007 x008 x009 xaa xab xac xad xae xaf xag xah xai xaj
爲分割後的文件指定文件名的前綴:server
[root@ceshi split]# split -b 10k date.file -d -a 3 split_file [root@ceshi split]# ls date.file split_file002 split_file005 split_file008 x001 x004 x007 xaa xad xag xaj split_file000 split_file003 split_file006 split_file009 x002 x005 x008 xab xae xah split_file001 split_file004 split_file007 x000 x003 x006 x009 xac xaf xai
使用-l選項根據文件的行數來分割文件,例如把文件分割成每一個文件包含10行的小文件:
split -l 10 date.file
csplit命令 用於將一個大文件分割成小的碎片,而且將分割後的每一個碎片保存成一個文件。碎片文件的命令相似「xx00、xx01」。csplit命令 是split的一個變體,split只可以根據文件大小或行數來分割,但csplit可以根據文件自己特色來分割文件。
csplit(選項)(參數)
文件:指定要分割的原文件。
模式:指定要分割文件時的匹配模式。
測試文件內容server.log
[root@ceshi csplit]# cat server.log SERVER-1 [con] 10.10.10.1 suc [con] 10.10.10.2 fai [dis] 10.10.10.3 pen [con] 10.10.10.4 suc SERVER-2 [con] 10.10.10.5 suc [con] 10.10.10.6 fai [dis] 10.10.10.7 pen [con] 10.10.10.8 suc SERVER-3 [con] 10.10.10.9 suc [con] 10.10.10.10 fai [dis] 10.10.10.11 pen [con] 10.10.10.12 suc
須要將server.log分割成server1.log、server2.log、server3.log,這些文件的內容分別取自原文件中不一樣的SERVER部分:
[root@ceshi csplit]# csplit server.log /SERVER/ -n2 -s {*} -f server -b "%02d.log"; rm -rf server00.log [root@ceshi csplit]# ls server01.log server02.log server03.log server.log
命令詳細說明: