Back to Unix-like Utilities

See also Moin手工数据备份rsync

Data Compression Utilities

1. 常用格式与工具

*.Z         compress 程序压缩的文件;
*.gz        gzip 程序压缩的文件;
*.bz2       bzip2 程序压缩的文件;
*.tar       tar 程序打包的数据,并没有压缩过;
*.tar.gz    tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2   tar 程序打包的文件,其中并且经过 bzip2 的压缩

bzip2 ==替换==> gzip ==替换==> compress

1.1. gzip, zcat

1.2. bzip2, bzcat

[root@www ~]# bzip2 [-cdkzv#] 档名
[root@www ~]# bzcat 档名.bz2
选项与参数:
-c  :将压缩的过程产生的数据输出到萤幕上!
-d  :解压缩的参数
-k  :保留原始文件,而不会删除原始的文件喔!
-z  :压缩的参数
-v  :可以显示出原文件/压缩文件的压缩比等资讯;
-#  :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

范例一:将刚刚的 /tmp/man.config 以 bzip2 压缩
[root@www tmp]# bzip2 -z man.config 
# 此时 man.config 会变成 man.config.bz2 !

范例二:将范例一的文件内容读出来!
[root@www tmp]# bzcat man.config.bz2
# 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!!

范例三:将范例一的文件解压缩
[root@www tmp]# bzip2 -d man.config.bz2

范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件
[root@www tmp]# bzip2 -9 -c man.config > man.config.bz2

1.3. tar with gzip


1.4. tar with bzip2

# 压 缩:
tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
# 查 询:
tar -jtv -f filename.tar.bz2
# 解压缩:
tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

1.5. rar, unrar

http://www.rarlab.com/rar/

$ wget http://www.rarlab.com/rar/rarlinux-x64-5.4.0.tar.gz
$ tar xzf rarlinux-x64-5.4.0.tar.gz
$ sudo cp rar/unrar /usr/bin
$ unrar x xx.rar

2. Skills

2.1. 仅压缩比某个时刻还要新的文件

# tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2008/09/29" /etc/*
# tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 |grep -v '/$' 

2.2. 忽略掉指定的内容

# tar -cjf data_`date +%Y%m%d`.tar.bz2 -X exf --exclude=pages/*/cache pages/
# tar -tjf data_`date +%Y%m%d`.tar.bz2 |grep -v '/$'

# tar -czf data_`date +%Y%m%d`.tar.gz -X exf --exclude=*/cache pages/
# tar -tzf data_`date +%Y%m%d`.tar.gz

# ll
-rw-r--r-- 1 root  root  221850513 Apr 29 16:10 data_20120429.tar.bz2
-rw-r--r-- 1 root  root  223363809 Apr 29 16:04 data_20120429.tar.gz

➜  wechat tar czf woms.tar.gz --exclude=node_modules woms

3. Reference

MainWiki: Data_Compression_Utilities (last edited 2010-01-17 21:04:13 by twotwo)