0.什么是压缩包
就是将多个文件和目录合并为一个特殊的文件
1.为什么要使用压缩包
1.减少占用的体积
2.加快网络的传输
2.Windows的压缩和Linux有什么不同?
Windows: zip rar(Linux不支持)
Linux: zip tar.gz tar.bz2 .gz
如果系统Windows的软件能被Linux解压,说着Linux的软件包被wind能识别,选中zip
ps:压缩包的后缀不重要,但是定要携带。
ps:右击网址复制地址, wget 地址
3.压缩包用在哪里?
tar.gz zip
4.Linux下常见的压缩包类型:
1.gzip
2.zip
3.tar.gz tar.bz2(了解) tar.xf(了解)
5.gzip的
安装zgip 命令: yum install gzip -y
[root@chenpeng ~]# gzip file #对文件进行压缩
[root@chenpeng ~]# zcat file.gz #查看gz压缩后的文件
[root@chenpeng ~]# gzip -d file.gz #查看解压gzip的压缩包
使用场景:
1.当需要让某个文件不生效时,系统只识别.repo文件
gzip CentOs-Vault.repo --> centOs-Vault.repo.gz
zcat CentOs-Vaule.repo.gz --> 查看不想解压的压缩包文件内容
gzip * ---> 对当前目录下所有的文件进行压缩
6.zip的压缩包格式
0.准备工作
yum install zip unzip -y
1.如何压缩文件(不会删除源文件)
命令 压缩包名称 压缩包里需要存放的文件
[root@www.oldboyedu.com ~]# zip tt.zip test.log
搬家 行李箱 个人物品
2.如何压缩目录
[root@www.oldboyedu.com ~]# zip -r tt.zip /var/log test.log
3.如何解压
[root@www.oldboyedu.com ~]# unzip tt.zip
4.测试是否能与Windows之间互相压缩和解压
可以
7.tar.gz 式(czf)
1.如何打包,将所有的文件,目录打成一个包
tar命令进星归档,zgip进行压缩
2.查看压缩包的内容
# tar tf tt.tar.gz #查看压缩包的内容
3.解压软件包
# tar xf tt.tar.gz
4.解压默认是解压到当前目录下:
# tar xf tt.tar.gz #指定压缩包解压到目录下
5.打包时的路径选择: 相对路径 绝对路径
# tar czf sys.tar.gz /etc/ /var/
tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
问题: 为什么有一个删根的操作:
防止在解压的过程中,直接覆盖原有的目录以及文件
推荐的打包方式:
# cd /
# tar czf /root/etc.tar.gz etc/ var/
将etc目录 var目录 统一打包存放到/root/目录下的 etc.tar.gz压缩包中
如何打包时排除文件: (备份不需要使用排除,)
#1.排除单个文件
[root@xuliangwei /]# tar czf etc.tar.gz --exclude=etc/services etc/
#2.排除多个文件
[root@xuliangwei /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
[root@www.oldboyedu.com /]# tar czf etc.tar.gz --exclude=etc/{passwd,shadow,gshadow} etc/
#3.将需要排除的文件写入文件中
[root@xuliangwei /]# cat paichu.list #必须写相对路径
etc/services
etc/rc.local
etc/rc.d/rc.local
#通过-X指定需要排除的文件列表, 最后进行打包压缩
[root@xuliangwei /]# tar czfX etc.tar.gz paichu.list etc/
如何打包时保留软连接文件
#3.打包链接文件,打包链接文件的真实文件
[root@xuliangwei ~]# cd /
[root@xuliangwei /]# tar czfh local.tar.gz etc/rc.local
find与du打包的结合方式
#扩展: 统计/下面的目录的大小,只统计1级
[root@www.oldboyedu.com ~]# find / -maxdepth 1 -type d |sed -r 's#(.*)# du -sh \1 #g'|bash
[root@www.oldboyedu.com ~]# ls -d /* |xargs du -sh
[root@www.oldboyedu.com ~]# du -sh /*
linux打包与压缩习题
0.列出linux常用打包工具并写相应的压缩、解压缩参数
gzip: 只能压缩单个文件
1.gzip filename #打包|压缩
2.gzip -d filename.gz #解压
3.zcat filename.gz #查看压缩包中的内容
zip: 支持压缩多个目录和文件--->希望能与windows进行互通
1.zip -r filename.zip filename
命令 递归 选项 参数
搬家 多个 箱子 物品
2. unzip filename.zip #解包
PS: yum install zip unzip 默认情况下没有安装zip和unzip
tar: 能够支持单个文件和多个文件,并也能与windows进行互通. 因为很多开源的项目提供的压缩包就是tar.gz
tar czf filname.tar.gz filename directory #打包
tar xf filname.tar.gz #解压
tar xf filname.tar.gz -C /tmp #解压到--> 指定解压的目标位置
tar tf filename.tar.gz #查看压缩包内容,类似于windows双击压缩包的效果
-----------------------------------
tar cjf filename.tar.bz2 #打包格式为bz2
tar cJf filename.tar.xz #打包格式为xz
PS: 为什么要压缩: 将多个文件整合为一个特殊的文件,压缩后能有效的节省资源空间,便于快速下载与上传.
1.如何用gzip命令对文件进行压缩、解压缩,给出实践步骤。
1.gzip filename #打包|压缩
2.gzip -d filename.gz #解压
3.如何用zip命令对文件以及目录进行压缩、解压缩,给出实践步骤。
1.zip -r filename.zip filename
命令 递归 选项 参数
搬家 多个 箱子 物品
2. unzip filename.zip #解包
PS: yum install zip unzip 默认情况下没有安装zip和unzip
4.创建一个自己名子的文件至/opt目录,给出实践步骤。
[root@www.oldboyedu.com ~]# touch /opt/ttt
5.打包opt/整个目录,并命名为opt_2019_04_19.tar.gz,给出实践步骤。
#写死
[root@www.oldboyedu.com ~]# tar czf opt_2019_04_19.tar.gz /opt/
[root@www.oldboyedu.com ~]# date +%F
2019-05-15
[root@www.oldboyedu.com ~]# tar czf opt_$(date +%F).tar.gz /opt/
[root@www.oldboyedu.com ~]# ls
opt_2019-05-15.tar.gz
[root@www.oldboyedu.com ~]# date -s "2019/05/16"
[root@www.oldboyedu.com ~]# tar czf opt_$(date +%F).tar.gz /opt/
opt_2019-05-16.tar.gz
6.查看打包好的opt_2019_04_19.tar.gz里的文件,给出实践步骤。
[root@www.oldboyedu.com ~]# tar tf opt_2019-05-15.tar.gz
7.将打包好的opt_2019_04_19.tar.gz内容指定解压至/tmp目录,并给出实践步骤。
[root@www.oldboyedu.com ~]# tar xf opt_2019-05-15.tar.gz -C /tmp/
8.打包以当前主机名+ip的命名方式的压缩包: 比如: www.oldboyedu.com_2019-05-16_10.0.0.99.tar.gz ,压缩/opt目录即可
1.提取主机名 hostname
2.提取IP地址 ifconfig ens32|awk ‘/inet / {print $2}’
3.提取当前时间 date +%F
tar czf KaTeX parse error: Expected group after '_' at position 11: (hostname)_̲(ifconfig ens32|awk '/inet / {print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲')_(date +%F).tar.gz /opt