一、介绍
linux下一般使用的压缩类型有以下几种:
注意: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