linux基础之文件压缩和打包
##1.文件打包与压缩概述
####1.1什么是文件压缩
将多个文件或者目录合并称为一个特殊的文件【压缩包】
####1.2为什么需要文件压缩
当我们在传输大量的文件时,通常都会选择将改文件进行压缩,然后在进行传输
首先;压缩后的文件回避压缩前的文件小。一个28G的文件压缩后能达到6G
其次:多个文件传输很慢,蛋蛋哥文件传输会很快,同时还能节省网络的消耗
####1.3不同系统的压缩格式互通
windows的压缩包与linux的压缩包能否互通?
windows系统下下,接触最多的压缩格式是rar或zip
linux系统上使用的最多的压缩格式是zip和tar.gz
在linux上的压缩格式放在windows系统下都是可以正常打开的
所以一把windows和linux互通通常选择zip格式
值得注意的是linux不支持windows下的RAR格式的压缩文件
windows linux macos 支持zip
tar.gz属于linux系统特有的一种格式,windows1仍然可以识别并解压
####1.4linux下常见的压缩包类型
格式 压缩工具
.zip zip压缩工具
.gz gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.bz2 bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.tar.gz 先使用tar命令归档打包,然后使用gzip压缩
.tar.bz2 先使用tar命令归档打包,然后使用bzip压缩
##2文件打包与压缩-gzip
gzip仅能打包文件,并且打包后会删除源文件
####2.1gzip压缩文件
注意:最小化centos7 需要先安装
[root@node: ~]#yum install gzip -yfile
[root@node: ~]#gzip file #对文件进行压缩
[root@node: ~]#zcat file.gz #查看gz压缩后的文件
[root@node: ~]#gzip -d file.gz #解压gzip的压缩包
#bzip2
[root@node: ~]#yum insatll bzip2 -y
[root@node: ~]#bzip2 file #对文件进行压缩
[root@node: ~]#bzcat file.bz2 #查看gz压缩后的文件
[root@node: ~]#bzip2 -d file.bz2 #解压gzipd的压缩包
####2.2gzip应用场景
使用场景:当需要让某个配置文件不生效时,且又不想删除
[root@node: ~]gzip Centos-vault.repo
#--> Centos-vault.repo.gz
[root@node: ~]#zcat CentOS-vault.repo.gz
#--> 查看不想解压的压缩包文件内容
##3.文件打包与压缩-zip
使用zip命令可以对问价进行压缩打包,解压则需要使用unzip命令
####3.1zip压缩文件
1.默认最小化安装的操作系统,没有zip和unzip工具,所以需要安装
[root@node: ~]#yum install zip unzip -y
2.使用zip压缩文件
[root@node: ~]zip filename.zip
[root@node: ~]zip -r dir.zip dir/
####3.2unzip解压文件
1.解压zip文件包,默认解压至当前目录
[root@node: ~]unzip filename.zip
2.解压zip包内容至/opt目录
[root@node: ~]unzip filename.zip -d /opt/
3.不解压压缩包,查看压缩包中的内容
[root@node: ~]unzip -l filename.zip
##4.文件打包与压缩-tar
tar命令是linux下最常用的压缩与解压缩,支持文件和目录的压缩归档
tar语法:tar[-zjxcvfpP]filename
常用打包与压缩组合命令
####4.1使用tar压缩文件
1.将文件或目录进行压缩打包
以gzip归档方式打包并压缩
[root@node: ~]tar czf test.tar.gz test/ test2/
2.打包/tpm下所有文件
[root@node: ~]find /tmp -type f | xargs tar czf tmp.tar.gz
[root@node: ~]tar czf tmp.tar.gz $(find /tmp -type
#将前者执行的命令作为参数传递后者tar这个命令使用
[root@node: ~]#find ./ -maxdepth 1 -type f ! -name "*.gz" -a ! -name "*.zip" -a ! -name "*.bz2 | xargs tar czf
2.排除文件并打包压缩
1.排除单个文件
[root@node: ~]#tar czf etc.tar.gz --exclude=etc/services etc/
2.排除多个文件
[root@node: ~]tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local
3.将需要的排除的文件写入文件中
[root@node: ~]#cat paichu.list
etc/servics
etc/rc.local
etc/rc.d/rcc.local
指定需要排除的文件列表,最后进行打包压缩
[root@node: ~]#tar czfX etc.tar.gz pai.txt /etc/
使用tar列出文件
查看压缩包内容,但不解压
[root@node: ~]#tar tf etc.tar.gz
####4.2使用tar解压文件
1.默认解压文件至当前目录
解压至当前目录
[root@node: ~]tar xf local.tar.gz
指定解压内容存储至/opt目录
[root@node: ~]tar xf /etc/local.tar.gz -C /tmp