Bz* 命令
bzip2
是用来压缩和解压文件的一个命令, 它最大的优点在于超高的压缩效率.
bzip2
VSgzip
bzip2
压缩率更高gzip
速度更快- 在高压缩率下
bzip2
的速度更块一些(相比gzip
)
压缩某个文件
➤ ls -l catshadow
-rwxrwxr-x 1 mr mr 8.7K 11月 11 15:49 catshadow*
➤ bzip2 catshadow
➤ ls -l catshadow.bz2
-rwxrwxr-x 1 mr mr 2.8K 11月 11 15:49 catshadow.bz2*
然后你就会发现原来的文件不见惹...
在压缩文件(.bz2)里面搜索 (bzgrep)
如果你压缩了某个日志文件, 想搜索里面的某条信息, 那你是不是应该先解压, 再用grep
搜索?
然而,这条命令就把两者组合起来了:
bzgrep grep-options -e pattern filename
我觉着这是不符合Unix哲学的, 把自己的事情做好就行了, 可是话又说回来, 你怎么知道我想做什么事呢?
➤ seq 99999 > numbers
➤ l numbers
-rw-rw-r-- 1 mr mr 576K 1月 5 20:28 numbers
➤ bzip2 numbers
➤ bzgrep 233 numbers.bz2
233
1233
2233
2330
2331
...
...
直接在文件里面搜索.
查看压缩文件的内容(不解压)
同样, 我们不解压也可以直接查看压缩文件的内容:
bzcat numbers.bz2
或者:
bzless numbers.bz2
或者:
bzmore numbers.bz2
bz找不同
还有bzcmp
和 bzdiff
这两个命令, 是用来找不同的.
$ cmp System.txt.001 System.txt.002
System.txt.001 System.txt.002 differ: byte 20, line 2
$ bzcmp System.txt.001.bz2 System.txt.002.bz2
- /tmp/bzdiff.csgqG32029 differ: byte 20, line 2
$ bzdiff System.txt.001.bz2 System.txt.002.bz2
2c2
< 0: ERR: Mon Sep 27 12:19:34 2010: gs(11153/1105824064):
[chk_sqlcode.scp:92]: Database: ORA-01654: unable to
extend index OPC_OP.OPCX
_ANNO_NUM by 64 in tablespace OPC_INDEX1
---
> 0: ERR: Wed Sep 22 09:59:42 2010:
gs(11153/47752677794640): [chk_sqlcode.scp:92]: Database:
ORA-01653: unable to extend table OPC_OP.
OPC_HIST_MESSAGES by 64 in tablespace OPC_6
4,5c4
< Retry. (OpC51-22)
< Database: ORA-01654: unable to extend index
OPC_OP.OPCX_ANNO_NUM by 64 in tablespace OPC_INDEX1
---
> 0: ERR: Wed Sep 22 09:59:47 2010:
gs(11153/47752677794640): [chk_sqlcode.scp:92]: Database:
ORA-01653: unable to extend table OPC_OP.
OPC_HIST_MESSAGES by 64 in tablespace OPC_6
这一部分我介绍的有点少, 是因为我本人用bz系列不是很多, 为了追求速度, 都是用tar
的, 而且日常生活中也遇不到对比两个压缩文件内容的情况...