一、为什么要打包和压缩?
在系统备份和还原、网络传送数据的时候,能节约大量的空间。
- 打包:将很多文件捆绑在一起,形成一个文件
- 压缩:把捆绑后的文件减小占用空间
二、文件压缩命令
1、zip——只能对文件进行压缩,不能压缩文件夹,后缀名为.zip
zip+压缩文件名+原文件
[root@192 blog]# zip passwd.zip passwd
adding: passwd (deflated 64%)
[root@192 blog]# ls
passwd passwd.zip
[root@192 blog]# unzip passwd.zip //解压命令
2、gzip——直接在原文件上压缩,后缀名为.gz
[root@192 blog]# gzip passwd
[root@192 blog]# ls
beijing passwd.gz passwd.zip
[root@192 blog]# zcat passwd.gz //查看压缩文件里的内容
[root@192 blog]# gunzip passwd.gz //解压缩
3、xz——默认安装的压缩工具,后缀名为.xz
[root@192 backup]# xz passwd
[root@192 backup]# ls
beijing passwd.xz passwd.zip
[root@192 backup]# xzcat passwd.xz
[root@192 backup]# unxz passwd.xz
[root@192 backup]# ls
beijing check_pwd.sh passwd passwd.zip
[root@192 backup]#
xz的压缩效果比gz好,在压缩后占用空间少,但压缩时间更长;gz压缩效果一般,压缩速度较快;文件小的时候,用gz和xz都可以,如果文件比较大,xz能节约更多的磁盘空间,但运行时间会比较长。
4、bzip2——后缀名为.bz2
[root@192 lianxi]# bzip2 a.txt
[root@192 lianxi]# ls
aa a.txt.bz2
[root@192 lianxi]# bzcat a.txt.bz2 //查看
[root@192 lianxi]# bunzip2 a.txt.bz2 //解压
以上四个命令就是linux中常用的文件压缩命令(注意!!只能进行文件压缩,文件夹不适用)
三、Tar命令
用tar命令打的包称为tarball—>tar包—>归档文件,归档文件是指将很多个文件或者文件夹打包到一个文件里,然后可以对这些归档文件进行压缩。
tar命令就是用来制作和释放归档文件的,而且不论是文件夹还是文件,用tar命令都可以。
- .tar --》 只是归档,不进行压缩
- .tar.gz --》先归档,再调用gzip进行压缩 --》速度快
- .tar.xz --》先归档再调用xz —》压缩效果最好
- .tar.bz2 —》 先归档然后调用bzip2压缩
tar命令的常用选项参数:
- -c : 创建 .tar 格式的包文件—create
- -x : 解开tar格式的包文件(extract:提取) --tar xf—xf 可以解压任何后缀的包,解压的时候如果不指定路径,默认解压到当前目录下。
-C:指定解压路径 eg:tar xf /bb/passwd.tar.gz -C /lianxi
- -v : 输出详细信息
- -f : 表示使用归档文件 file
- -t : 列表查看包内的文件 tar tf
- -p : 保持原文件的原来属性
- -p : 保持原文件的绝对路径
- -z : 调用gzip去压缩
- -J : 调用xz去压缩
- -j : 调用bzip2去压缩
tar czf ---》 .tar.gz
tar cjf ----> .tar.bz2
tar cJf --> .tar.xz
tar 选项 压缩名称 原文件
[root@192 luo]# tar czf passwd.tar.gz passwd
[root@192 luo]# ls
boot passwd passwd.tar.gz
[root@192 luo]# tar cjf passwd.tar.bz2 passwd
[root@192 luo]# tar cJf passwd.tar.xz passwd
[root@192 luo]# ls
boot passwd passwd.tar.bz2 passwd.tar.gz passwd.tar.xz
也可以使用绝对路径指定压缩路径
[root@192 luo]# mkdir /bb
[root@192 luo]# pwd
/lianxi/luo
[root@192 luo]# tar czf /bb/passwd.tar.gz /etc/passwd
tar: 从成员名中删除开头的“/”
[root@192 luo]# ls /bb
passwd.tar.gz
[root@192 luo]#