压缩与打包
打包压缩的用途:
减少磁盘使用空间
方便备份目录等多个文件
方便传输,减少带宽
打包压缩的技术:
简单理解为把不完全满的空间压缩填满
压缩的命令: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/