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
posted @ 2021-07-18 16:36  小徐的大宝剑  阅读(330)  评论(0编辑  收藏  举报