day14-压缩和解压缩-笔记
2019-08-13 本文已影响0人
一条小强强OvO
Day14-压缩和解压缩gzip,zip,tar
导读
- 昨日回顾
- 1.find文件查找的命令
- 2.find通过哪些方式查找文件
- 3.find动作处理Action
- 今日内容
- 1.什么是文件的压缩
- 2.为什么要对文件进行压缩
- 3.Windows能否与Linux压缩包互通
- 4.Linux下压缩包有哪些常见的类型
- 5.gzip工具使用
- 6.zip工具使用
- 7.tar工具使用
昨日回顾
find文件查找的命令
find [path] [options] [expression] [action]
查找 路径 选项 表达式 动作
find通过哪些方式查找文件
名称 -name
大小 -size
类型 -type
时间 -mtime
用户 -user
用户组 -group
过滤内容 grep使用
find动作处理Action
列出结果
以长格式列出结果
删除查找的结果
执行command命令
-ok command \; #会提示
-exec command \; #可以执行任何shell命令(效率不是太高)
|xargs command #将find的结果作为参数传递给后面的命令
今日内容
什么是文件的压缩
将多个文件或目录合并为一个特殊的文件
为什么要对文件进行压缩
减小文件的体积
加快资源的传输
节省网络的带宽
Windows能否与Linux压缩包互通
Windows:rar zip 其实支持很多类型的压缩
Linux:zip tar.gz
Windows与Linux互通建议使用:zip
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 ~]# gzip filename 打包
[root@oldboy ~]# gzip -d filename.gz 解包
[root@oldboy ~]# zcat filename.gz 查看包内文件内容
-----------------------------------------------------
使用场景:当需要让某个文件快速关闭和快速启用.
zip工具使用
#默认没有zip和unzip工具,需要进行安装
[root@oldboy ~]# yum install zip unzip -y
#压缩文件为zip包
[root@oldboy ~]# zip filename.zip filename 打包
[root@oldboy ~]# unzip -l filename.zip 查看包的内容
#压缩目录为zip包
[root@oldboy ~]# zip -r /opt/etc.zip /etc/ 递归打包
#查看zip压缩包是否是完整的
[root@oldboy ~]# zip -T filename.zip
[root@oldboy ~]# zip -t filename.zip #检测文件是否都ok
#解压zip文件包,默认解压至当前目录
[root@oldboy ~]# unzip filename.zip 解包
#解压zip内容至指定目录
-d 指定目录
[root@oldboy ~]# unzip filename.zip -d /tmp 解包到指定目录
tar工具使用
#语法:tar [-zjxcvfpP] filename
c #创建新的归档文件
x #对归档文件解包
t #列出归档文件里的文件列表
f #指定包文件名,多参数f写最后
z #使用gzip压缩归档后的文件(.tar.gz)
j #使用bzip2压缩归档后的文件(.tar.bz2)
J #使用xz压缩归档后的文件(tar.xz)
C #指定解压目录位置
X #排除多个文件(写入需要排除的文件名称)
h #打包软链接
--exclude #在打包的时候写入需要排除文件或目录
#常用打包与压缩组合
czf #打包tar.gz格式 使用最多
xf #自动选择解压模式
tf #查看压缩包内容
cjf #打包tar.bz格式
cJf #打包tar.xz格式 使用太少,不考虑
zxf #解压tar.gz格式
jxf #解压tar.bz格式
#打包
[root@oldboy ~]# tar czf /opt/test.tar.gz /etc gzip方式压缩
[root@oldboy ~]# tar cjf /opt/test.tar.bz2 /etc bz2方式压缩
#查看包内容
[root@oldboy ~]# tar tf test.tar.gz 查看包内容
#解包
[root@oldboy ~]# tar xf test.tar.gz 智能解包
[root@oldboy ~]# tar xf root.tar.gz -C /tmp 解压到指定目录
#打包/tmp下所有文件
find tmp/ -type f |xargs tar czf tmp.tar.gz
tar czf tmp.tar.gz $(find /tmp/ -type f)
#打包链接文件,打包链接文件的真实文件
[root@oldboy ~]# tar czhf /opt/test.tar.gz /bin 打包软连接的真实文件
#排除操作
[root@oldboy ~]# tar czf etc.tar.gz /etc/ --exclude=etc/passwd
[root@oldboy ~]# tar czf etc.tar.gz /etc/ --exclude=etc/passwd --exclude=etc/shadow
#将需要排除的文件写入文件中
[root@oldboy ~]# cat pc.txt
etc/gshadow
etc/gshadow-
etc/passwd
etc/passwd-
etc/shadow-
etc/shadow
etc/security/opasswd
etc/pam.d/passwd
[root@oldboy ~]# tar czXf pc.txt etc.tar.gz /etc/