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
命令详细说明: