- 文件的打包与压缩
1、什么是文件压缩
将多个文件或目录合并成为一个特殊的文件。 - 2、我们为什么要对文件进行压缩
我们在传输大量文件时,通常都会选择将该文件进行压缩,然后进行传输。
首先:压缩后的文件会比压缩前的文件小,一个28g的文件夹压缩以后能够达到6g
其次:多个文件传输的很慢,但单个文件传输的很快,同时还能节省网络消耗。 - 3、Windows与Linux的压缩之间是否互通。
windows较多的压缩格式为rar或者zip,但是在Linux上使用最多的格式是zip和tar.gz 。
PS:Linux不支持Windos下的RAR格式的压缩文件。一般二者之间选择zip格式。
4、Linux下压缩包有哪些常见的类型
格式 | 压缩工具 |
---|---|
.zip | zip压缩工具 |
.gz | gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用) |
.bz2 | bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用) |
tar.gz | 先使用tar命令归档打包,然后使用gzip压缩 |
tar.bz2 | 先使用tar命令归档打包,然后使用bzip压缩 |
- gzip的打包与压缩
使用gzip方式进行压缩文件
[root@oldboy ~]# yum install gzip -y
[root@oldboy ~]# touch file
[root@oldboy ~]# gzip file
[root@oldboy ~]# zcat file.gz
[root@oldboy ~]# ls
1 10 123.zip 2 3 4 5 6 7 8 9 file1 file2 file.gz
[root@oldboy ~]# gzip -d file.gz
[root@oldboy ~]# ls
1 10 123.zip 2 3 4 5 6 7 8 9 file file1 file2
当需要让某个文件不生效时
[root@oldboy ~]# gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz
[root@oldboy ~]# zcat CentOS-Vault.repo.gz --> 查看不想解压的压缩包文件内容
-
zip的打包与压缩
[root@oldboy ~]# yum install zip unzip -y
[root@oldboy ~]# touch biaogan
1、压缩文件为zip
[root@oldboy ~]# zip biaogan.zip biaogan #zip+压缩命名 源文件
adding: biaogan (stored 0%)
[root@oldboy ~]# ls
1 123.zip 3 5 7 9 biaogan.zip file1
2、压缩目录为zip
[root@oldboy ~]# mkdir dir/
[root@oldboy ~]# zip -r dir.zip dir/ #-r递归
adding: dir/ (stored 0%)
[root@oldboy ~]#
3、查看zip压缩包是否完整
[root@oldboy ~]# zip -T dir.zip
test of dir.zip OK
4、不解压压缩查看内容用-l和-t
[root@oldboy ~]# unzip -l dir.zip
[root@oldboy ~]# unzip -t dir.zip
5、解压zip文件包默认至当前目录
[root@oldboy ~]# unzip dir.zip
Archive: dir.zip
6、解压zip内容到/opt目录
[root@oldboy ~]# unzip 123.zip -d /opt/ #-d指向位置
#打包 zip -r /tmp/test.zip file dir/
#解包 unzip tt.zip unzip tt.zip -d /opt
-
2、tar打包与压缩
tar是Linux下最常用的压缩与解压缩,支持文件和目录的压缩归档
语法:tar [-zjxcvfpP] filename
c #创建新的归档文件
x #对文档文件解包
t #列出归档文件里的文件列表
f #指定包文件名,多参数f放在最后
z #使用gzip压缩归档后的文件(.tar.gz)
j #使用bzip2压缩归档后的文件(.tar.bz2)
J #使用xz压缩归档后的文件(tar.xz)
C #指定解压目录位置
X #排除多个文件(写入需要排除的文件名称)
h #打包软连接
--exclude #在打包的时候写入需要排除的文件或目录
- 常用打包与压缩集合
cjf #打包tar.bz格式
cJf #打包tar.xz格式 使用较少
zxf #解压tar.gz格式
jxf #解压tar.bz格式
czf #打包tar.gz格式
tf #查看压缩包内容
xf #自动选择解压模式
- 1.将文件或目录进行打包压缩
1.以gzip归档方式打包并压缩
tar czf test.tar.gz test/ test2/
2.以bz2方式压缩
tar cjf test.tar.bz2 dir.txt dir/
3.打包链接文件,打包链接文件的真实文件
[root@oldboy ~]# cd /
[root@oldboy ~]# tar czfh local.tar.gz etc/rc.local
4.打包/tmp下所有文件
[root@oldboy ~]# cd /
[root@oldboy ~]# find tmp/ -type f | xargs tar czf tmp.tar.gz
5.打包/tmp下所有文件
[root@oldboy ~]# tar czf tmp.tar.gz $(find /tmp/ -type f)
- 2.排除文件, 并打包压缩
1.排除单个文件
[root@oldboy ~]# tar czf etc.tar.gz --exclude=etc/services etc/
2.排除多个文件
[root@oldboy ~]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
3.将需要排除的文件写入文件中
[root@oldboy ~]# cat paichu.list
etc/services
etc/rc.local
etc/rc.d/rc.local
指定需要排除的文件列表, 最后进行打包压缩
[root@oldboy ~]# tar czfX etc.tar.gz paichu.list etc/
4.查看压缩文件
查看压缩包内容和解压
[root@oldboy ~]# tar tf test.tar.gz
5.解压缩文件
1.解压至当前目录
[root@oldboy ~]# tar xf test.tar.gz
2.将解压内容存储至指定的/tmp目录
[root@oldboy ~]# tar xf /etc/local.tar.gz -C /tmp
tar命令练习
1.环境准备
[root@oldboy ~]# yum install mariadb-server
[root@oldboy ~]# systemctl start mariadb
[root@oldboy ~]# mkdir /backup
mysql备份及恢复
[root@oldboy ~]# cd /var/lib/mysql
[root@oldboy mysql]# tar cJf /backup/mysql.tar.xz *
[root@oldboy mysql]# tar tf /backup/mysql.tar.xz
[root@oldboy mysql]# tar xf /backup/mysql.tar.xz -C /var/lib/mysql