一、介绍
linux下一般使用的压缩类型有以下几种:
![](https://i-blog.csdnimg.cn/blog_migrate/96fc2c44ddafcbd55797af0baab76d71.png)
注意:widows和linux互通的压缩包只有zip类型,linux不支持rar类型的,widows支持linux所有压缩类型
二、基本命令
1、gzip(gz类型)
注意:gzip只能压缩文件,不能压缩文件夹,压缩文件夹,只会把文件夹下的文件进行压缩,压缩好后会把原来的文件删除
'''
------命令格式-------
gzip options filename
------options参数--------
-a 使用ASCII文字模式。
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件。
-d 解开压缩文件。
-f 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-l 列出压缩文件的相关信息。
-L 显示版本与版权信息。
-n 压缩文件时,不保存原来的文件名称及时间戳记。
-N 压缩文件时,保存原来的文件名称及时间戳记。
-q 不显示警告信息。
-r 递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串> 更改压缩字尾字符串。
-t 测试压缩文件是否正确无误。
-v 显示指令执行过程。
-V 显示版本信息。
-<压缩效率> 压缩效率是一个介于1-9的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。
--best 此参数的效果和指定"-9"参数相同。
--fast 此参数的效果和指定"-1"参数相同。
'''
[root@VM-4-16-centos /home/test]#gzip file #压缩文件file
[root@VM-4-16-centos /home/test]#ls
file1 file.gz
[root@VM-4-16-centos /home/test]#gzip -9 file #90%压缩率压缩文件file
[root@VM-4-16-centos /home/test]#gzip -1 file1 #10%压缩率压缩文件file
[root@VM-4-16-centos /home/test]#gzip -dv file1
file1.gz: 2.7% -- replaced with file1
[root@VM-4-16-centos /home/test]#gzip -dv file
file.gz: 91.4% -- replaced with file
[root@VM-4-16-centos /home/test]#gzip -d file1.gz #解压file1.gz
2、zip(zip类型)
zip支持文件和文件夹打包压缩。
# zip options 压缩后文件名 压缩文件
'''
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 更新现有的文件。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-T 检查备份文件内的每个文件是否正确无误。
-v 显示指令执行过程或显示版本信息。
-z 替压缩文件加上注释。
-<压缩效率> 压缩效率是一个介于1-9的数值。
'''
[root@VM-4-16-centos /home]#zip test.zip test/ #压缩zip文件
adding: test/ (stored 0%)
[root@VM-4-16-centos /home]#unzip test.zip -d /home/test2/ #将zip文件解压到test2下
Archive: test.zip
creating: /home/test2/test/
[root@VM-4-16-centos /home]#unzip -l test.zip #不解压,查看压缩包内文件
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
0 01-11-2021 19:56 test/
--------- -------
0 1 file
3、tar
Linux下最常用的压缩和解压缩,支持文件和目录的压缩归档
#语法:tar [-zjxcvfpP] filename
c #创建新的归档文件
x #对归档文件解包
t #列出归档文件里的文件列表
v #输出命令的归档或解包的过程
f #指定包文件名,多参数f写最后
z #使用gzip压缩归档后的文件(.tar.gz)
j #使用bzip2压缩归档后的文件(.tar.bz2)
J #使用xz压缩归档后的文件(tar.xz)
C #指定解压目录位置
X #排除多个文件(写入需要排除的文件名称)
h #打包软链接
--hard-dereference #打包硬链接
--exclude #在打包的时候写入需要排除文件或目录
#常用打包与压缩组合
czf #打包tar.gz格式 常用
cjf #打包tar.bz格式 不怎么用
cJf #打包tar.xz格式 不考虑
zxf #解压tar.gz格式
jxf #解压tar.bz格式
xf #自动选择解压模式
xvf #显示解压过程
tf #查看压缩包内容
(1)tar + gzip 打包压缩
#1、压缩 tar czf 压缩后名字 文件名
[root@VM-4-16-centos /home/nq]#tar czf test.tar.gz test/
[root@VM-4-16-centos /home/nq]#ls
test test.tar.gz
#2、解压 tar zxf 解压文件名
[root@VM-4-16-centos /home/nq]#tar zxf test.tar.gz
(2)tar +bzip2 打包压缩
#1、解压命令:tar jxf 解压文件名
[root@VM-4-16-centos /home/nq]#tar jxf test.tar.bz2
#2、压缩命令:tar cjf 压缩后名字 文件名
[root@VM-4-16-centos /home/nq]#tar cjf test.tar.bz2 test
[root@VM-4-16-centos /home/nq]#ls
test test.tar.bz2 test.tar.gz
(3)排除文件压缩和查看压缩内容
# 1、压缩排除passwd文件
[root@VM-4-16-centos /home/nq]#tar czf excu.tar.gz --exclude=test/passwd test/
# 2、查看压缩内容
[root@VM-4-16-centos /home/nq]#tar tf excu.tar.gz
test/
test/test2
test/proxy.conf
test/test.txt
test/test2.txt
test/proxy1
# 3、以文件形式排除多个文件,进行压缩
[root@VM-4-16-centos /home/nq]#cat paichu.list
test/passwd
test/proxy.conf
test/proxy1
[root@VM-4-16-centos /home/nq]#tar czfX etc.tar.gz paichu.list test/
[root@VM-4-16-centos /home/nq]#tar tf etc.tar.gz
test/
test/test2
test/test.txt
test/test2.txt