linux基础day16:压缩打包 您所在的位置:网站首页 linux打包zip压缩命令 linux基础day16:压缩打包

linux基础day16:压缩打包

2023-03-30 22:43| 来源: 网络整理| 查看: 265

linux基础day16:压缩打包 原创

运维小源 2023-03-30 19:40:09 ©著作权

文章标签 文件名 压缩包 压缩文件 文章分类 运维

©著作权归作者所有:来自51CTO博客作者运维小源的原创作品,请联系作者获取转载授权,否则将追究法律责任 压缩打包

压缩的好处

节省磁盘空间占用率 节省网络传输带宽消耗 网络传输更加快捷 Linux系统常见的压缩包类型 格式 压缩工具 .zip zip压缩工具(windows与Linux互通) .gz gzip压缩工具,只能压缩文件,但会删除源文件(配合tar使用) .bz2 bzip2压缩工具,只能压缩文件,但会删除源文件(配合tar使用) .tar.gz 先使用tar命令归档打包,然后使用gzip压缩 .tar.bz2 先使用tar命令归档打包,然后使用bzip压缩

注意:

Linux下常用压缩文件以.tar.gz结尾 Linux下压缩文件必须带后缀

什么是打包

所谓打包就是将一大堆文件或目录变成一个总的文件后压缩

什么是归档

所谓归档就是将一大堆文件或目录变成一个总的文件

gzip压缩工具 # 语法 gzip [选项] 文件名... gzip [option] [file...] # 选项 -r 指定目录,将目录下所有文件都压缩成gz格式的压缩包# (目录不会变压缩包,目录下的所有文件会单独变成压缩包) -d 解压 # 特性 - gzip压缩文件,源文件消失 - gzip压缩文件,每个文件都是单独的压缩包 - gzip默认只能压缩文件,不能压缩目录 - zcat能查看压缩包的文件内容 - 当解压的时候,源文件出现,压缩包消失 # 安装gzip压缩工具 yum install -y gzip # 创建文件 echo 456 >> file1 # 压缩file1 gzip file1 # 查看文件 ll # 查看文件类型 file file1.gz # 查看gzip压缩后的文件内容 zcat file1.gz # 解压文件 gzip -d file1.gz # 查看文件 ll zip压缩工具 # 语法 zip [选项] 压缩包名 文件名 unzip 压缩包名 [选项] 文件名 # 选项 -r 递归处理,把目录下所有文件都压缩进去(zip) -d 可以解压到其他指定的路径下(unzip) # 特性 zip打包,保留源文件 unzip解压,保留压缩包 zip可以打包目录,但是不加-r时,是纯粹打包空目录 zip不能解压 unzip默认解压到当前目录 unzip -d 可以解压到其他指定的路径下 # 安装zip压缩工具和解压工具 yum install -y zip unzip # 压缩文件为zip包 zip filename.zip filename # 压缩目录为zip包 zip dir.zip dir/ # 解压zip文件包,默认解压至当前目录 unzip filename.zip tar压缩工具

tar是linux最常用的压缩与解压命令,支持文件和目录的压缩归档

# 语法:tar [选项] 文件名 tar [-zjJxXcCvfP] filename # 选项 c # 创建新的归档文件 x # 对归档文件解包 t # 列出归档文件里的文件列表 v # 输出命令的归档或解包的过程 f # 指定包文件名,如多参数f写最后(f后必须接包名) C # 指定解压目录位置 z # 使用gzip压缩归档后的文件(.tar.gz) j # 使用bzip2压缩归档后的文件(.tar.bz2) J # 使用xz压缩归档后的文件(.tar.xz) X # 排除多个文件(写入需要排除的文件名称) h # 打包软链接 P # 连带绝对路径打包 u # 在压缩打包的情况下往里加文件 # 了解 --hard-dereference 打包硬链接 --exclude 在打包的时候写入需要排除的文件或目录 # 常用的打包与压缩组合 czf # 打包tar.gz格式 cjf # 打包tar.bz2格式 cJf # 打包tar.xz格式 zxf # 解压tar.gz格式 jxf # 解压tar.bz2格式 xf # 自动选择解压模式(万能) tf # 查看压缩包内容 # 选项无论怎么组合 f必须放最后面,且必须接包名 # tar有个安全机制,如果是以绝对路径打包,则会删除前面的/ - 为了避免这种情况出现 避免解压开的时候覆盖源目录内容 - 要压缩哪个目录,就去这个目录的上一级,使用相对路径 # tar解压后,直接覆盖相同文件,不会提示是否覆盖 # 打包时排除单个或多个文件 tar zcf log.tar.gz --exclude=10.log --exclude=9.log opt/

注意事项:

使用tar 的--exclude 命令排除打包的时候,不能加“/”,否则还是会把logs目录以及其下的文件打包进去。

#错误写法 tar -zcvf BenchmarkSQL.tar.gz --exclude=benchmarksql-5.0/logs/ benchmarksql-5.0 #正确写法 tar -zcvf BenchmarkSQL.tar.gz --exclude=benchmarksql-5.0/logs benchmarksql-5.0 练习题 1.如何使用gzip命令对文件进行压缩、解压 压缩:gzip 文件名 解压:gzip -d 文件名 2.如何用zip命令对文件以及目录进行压缩、解压 压缩:zip 文件名 目录压缩:zip -r 文件名 解压:unzip 文件名 3.创建一个自己名字的文件至/opt目录 touch /opt/ljy 4.打包opt整个目录,并命名test_opt.tar.gz cd / tar zcf test_opt.tar.gz opt 5.查看打包好的test_opt.tar.gz里的文件 tar tf test_opt.tar.gz 6.将打包好的test_opt.tar.gz内容指定解压至/tmp目录 tar xf test_opt.tar.gz -C /tmp 7.打包etc目录下的所有文件,不要目录只要文件 cd / find /etc ! -type d |xargs -exec tar zcf etc.tar.gz {} \; 检查:tar tf etc.tar.gz |xargs -i find {} -type d 8.打包etc目录下的所有文件,排除passwd,shadow cd / tar zcf etc_no.tar.gz --exclude=etc/passwd --exclude=etc/shadow etc 检查:[root@localhost /]# tar tf etc_no.tar.gz |grep -E 'passwd|shadow' 9.打包etc目录下的所有以p开头的文件 find /etc -type f -name 'p*'|xargs -exec tar zcf etc_p*.tar.gz {} \; 10.打包etc目录下所有大于1M的文件 find /etc -type f -size +1M |xargs -exec tar zcf etc_1M.tar.gz {} \; 收藏 评论 分享 举报

上一篇:linux基础day15:文件查找与管道技术



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有