vlambda博客
学习文章列表

linux的各种压缩命令

本文包括linux的BZIP2、BZCAT、rar、tar、zip、unzip、cpio、compress、pax等各种压缩命令
BZIP2、BZCAT
-c 将压缩的过程产生的资料输出到荧屏上
-d 解压缩的参数
-z 压缩的参数
-1 与gzip一样,都是在计算压缩比的参数,-9最佳,-1最快。
bzip2  [-cdz]  档案名
bzcat    档案名.bz2
example:
bzip2  -z  man.config    /* 压缩成man.cofig.bz2 (不加参数也可以)  */
bzcat  man.cofig.bz2     /* 把档案内容读出来 */
bunzip2     filename.bz2   /* 将其解档 */
bzip2  -d  filename.bz2    /* 将其解档,同上 */
bzip2  -9  -c  man.config > man.config.bz2  /*将文件采用最大压缩比例压档并保留原档*/
bzip2  -c  filename  > filename.bz2        /* 将文件压档,同上 */
bzip2  -dc  filename.bz2  > filenam   /* 解档并保留原档 */
bunzip2  -c  filename.bz2 > filename   /* 同上 */
gzip
gzip
gzip  a.rpm    /* 将当前目录下的a.rpm 压缩为a.rpm.gz  */
gzip  -c  a.rpm > a.bak.gz    /* 压缩并留下原文件 */
gzip  -d  a.rpm.gz          /* 将文件解压,并保存为a.rpm */
gunzip  a.rpm.gz            /*  同上 */
gzip  -1   a.rpm           /* 最快速度压缩 */
gzip  -9   a.rpm           /* 最大压缩比速度 */

rar命令
rar a ra95.rar -p ra95  压缩ra95文件夹为ra95.rar
rar x ra95.rar   解压缩并创建全路径目录
 
tar
tar -zvcf - filename| split -b1000m - /home/filename.tar.gz.
分卷压缩文件成1000m大小,放在/home目录下(命令末尾有个小数点".")
cat filename.tar.gz.* | tar -zvxf - /opt
将分卷压缩的文件解压到/opt目录下
 
find  /path  -type  f   -mtime  0  -print  >  /path/file
 tar  -zcvf  -  -T  /path/file  |split  -b 10m  -  test.tar.gz.
 cat  test.tar.gz.*  | tar  -zxvf  -
 tar  cvf    backup.tar  /path
 tar  zcvf   backup.tar.gz    /path
 tar  jcvf   backup.tar.bz2  /path
tar  xvf  backup.tar
tar  zxvf  backup.tar.gz
tar jxvf  backup.tar.bz2
用tar自动打包
#!/bin/sh
#The script written by Chameleon
#Welcome to my homepage!http://Chameleon.icpcn.com
dir=/usr/local/japp/sendtime/log/
time=`date +%Y%m%d`
filename=$time.tgz
cd $dir
tar -czf $filename $time && rm -fr $dir/$time
if [ -f $dir/$filename ];then
echo "tar is ok">$dir/tar_ok.log
else
echo "$time is not exist">$dir/not_exist.log
fi
zip
zip –r abc.bak abc/
将abc目录下的文件压缩成abc.bak
unzip
将abc1.zip abc2.zip abc3.zip  解压值文件夹 /opt/soft 目录下
同时解压多个文件unzip -d /opt/soft "abc*.zip"   文件名加 " 号
zip –r abc.bak abc/
将abc目录下的文件压缩成abc.bak
 
cpio
[root@laptop tmp]# cpio -o -O photo.cpio
按回车以后要手工输入所需要打包的文件名。以Ctrl+D组合键结束。
注:-o 参数也可义用 --create替代,表示正在使用copy-out模式,
-O 参数只能和-o一起使用,表示出于out模式时,指定生成的文件。
[root@laptop tmp]# ls | cpio -o > photo.cpio
显示photo.cpio中的内容:
cpio  -t  < photo.cpio  
含子目录打包:
# find /usr/local/test  -print |cpio –o > /u01/a.cpio
解压:
# cpio –idmv < a.cpio
-i 解压文档
-d 在需要的地方创建目录
-m 保留文档从前的修改时间
-v 列出文件的处理过程,如果在本地没有文档的用户名和组将在本系统内用UID和GID代替。
-c 一种较新的便携式portable format方式存储
-B 让预设的Blocks可以增加至512bytes,预设是512bytes! 这样做的好处是让大档案的存储速度加快
-u 自动将较新的档案覆盖较旧的档案
将所有系统上的资料统统写入磁带机内:
# find / -print |cpio –covB  > /dev/st0
将档案还原回来:
# cpio –icduv  < /dev/st0
备份:find .  -print | cpio –o[acvB]  > device
恢复:cpio –itbv < device
find  /usr\/local\/java\/  -print |cpio  -oacvB >  java.cpio
注意:必须要有这个\/,否则只打包一个路径名
compress
ncompress-4.2.4-47.x86_64.rpm   工具是此rpm包
-d  用来压缩的参数
-r  可以连同目录下的档案也同时给予压缩
-c  将压缩资料输出为 stand output(输出到屏幕)
compress  -v   a.text       /* 显示信息情况的压缩 */
compress  -f   a.cpio       /* 强制压缩,一般不用这个选项,不能压缩的反而会出现反压缩比。*/
压缩完后,会出现 .Z的后缀,example: a.txt.Z    a.cpio.Z  
uncompress  -v  a.text.Z     /* 显示信息压缩,并去掉后缀(它是compress的一个链接,可用compress  -d  a.txt.Z 解档)。*/
uncompress   a.cpio.Z       /* 不显示信息压缩,并去掉后缀。*/
compress  -d  man.config.Z   /* 解档 */
compress  -c  man.config  >  man.config.back.Z   /* 压档并留下原有文件 */
pax
pax的一大特点是:它的pax档能被tar  xvf  work.pax ;cpio -idmn < work.pax 分别解档,它也能解开.tar和.cpio的档案!
pax  -wf  work.pax   work/   创建归档
pax  -rvf  work.pax          释放归档
pax  -rwv  work  /tmp/       将一个目录的文件拷到另一个个目录