首页 > 代码库 > 压缩与打包

压缩与打包

压缩与打包

打包压缩的用途:

    减少磁盘使用空间

    方便备份目录等多个文件

    方便传输,减少带宽

打包压缩的技术:

    简单理解为把不完全满的空间压缩填满

压缩的命令:gzip、zcat、bzip2、bzcat、xz

gzip [-cdtv#]  文件名

    -c  将压缩的数据输出到屏幕上,可通过数据流重定向来处理。(实现保存原文件和压缩文件)

    -d  解压缩

    -t  用来检验一个压缩文件的一致性,看看文件有无错误

    -v  显示压缩比等信息

    -#  压缩比等级,-1最快,但效果差,-9最慢。默认为-6

zcat 文件名.gz  :查看压缩内容


练习:将messages复制到/root下,并以gzip压缩

[root@test ~]# cp /var/log/messages ./

[root@test ~]# gzip messages 

[root@test ~]# ls 

messages.gz

 解压缩

[root@test ~]# gzip -d messages.gz 

[root@test ~]# ls -l

总用量 280

-rw------- 1 root root 283413 5月  17 01:34 messages

压缩并保留原文件

[root@test ~]# gzip -c messages  > messages.gz

总用量 320

-rw------- 1 root root 283413 5月  17 01:34 messages

-rw-r--r-- 1 root root  38697 5月  17 01:56 messages.gz

查看压缩内容:

[root@test ~]# zcat messages.gz  | less


bzip2 [-cdkzv#] 文件名

    -c   将压缩的数据输出到屏幕上

    -d   解压缩

    -k   保留原文件

    -z   压缩

    -v   显示压缩比等信息

    -#   压缩比等级,-1最快,但效果差,-9最慢。默认为-6

bzcat 文件名.bz2   :查看压缩内容


练习:将man.config复制到/root下,并以bzip2压缩

[root@test ~]# cp /etc/man.config ./

[root@test ~]# bzip2 man.config 

[root@test ~]# ls

man.config.bz2

查看压缩内容

[root@test ~]# bzcat man.config.bz2 | less

解压缩:

[root@test ~]# bzip2 -d man.config.bz2 

[root@test ~]# ls

man.config

压缩并保留原文件

[root@test ~]# bzip2 -k man.config 

[root@test ~]# ls

man.config  man.config.bz2


打包的命令:

tar [-j|-z] [cv] [-f 压缩文件名]  filename 

tar [-j|-z] [xv] [-f 压缩文件名] [-C 目录]

tar [-j|-z] [tv] [-f 压缩文件名]

    -c   创建归档

    -x   展开归档

    -t   不展开而直接查看被归档的文件

    -v   显示详细信息

    -z   使用gzip压缩

    -j   使用bz2压缩

    -J   使用xz压缩

    -f filename 后接要处理的文件名

    -C 目录  解压时,要指定的目录    

    -p   保留备份数据的原本权限属性,常用于备份(-c)重要的配置文件

    -P   保留绝对路径,即允许备份数据中含有根目录存在 

    --exclude=FILE  在压缩过程中,不要将FILE打包


常用组合: tar jcvf  filename.bz2 filename

           tar zcvf  filename.bz2 filename

           tar jxvf  filename.bz2

           tar zxvf  filename.bz2

练习:

分别以bz2和gz打包备份/etc目录,并除去profile文件

[root@test ~]# tar jcvf etc.tar.bz2 /etc --exclude=profile

[root@test ~]# tar zcvf etc.tar.gz /etc --exclude=profile

解压etc.tar.bz2到/tmp下

[root@test ~]# tar jxvf etc.tar.bz2 -C /tmp/


本文出自 “完美式_開始” 博客,谢绝转载!

压缩与打包