热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一次性分清zip、gzip、bzip2、tar命令

文章目录归类zip与unzip命令tar命令使用方式zipunzipgzipgunzipbzip2bunzip2tar归类我们把这几个命令归类为几种能力,一个是解压缩




文章目录


    • 归类
      • zip与unzip命令
      • tar命令

    • 使用方式
      • zip
      • unzip
      • gzip
      • gunzip
      • bzip2
      • bunzip2
      • tar





归类

img

我们把这几个命令归类为几种能力,一个是解压缩能力一个是打拆包能力。

我这里打包的意思是不使用压缩算法对文件进行压缩,只是简单的把多个文件归档为一个文件。而拆包则是它的逆过程。

压缩则是大家熟知的将文件以某种压缩算法对内容进行缩减,解压则是它的逆过程。


zip与unzip命令

zip命令用于将文件压缩为 .zip 格式的文件,之所以将他定义为可打包拆包是因为他可以支持多文件的压缩,而其他的 gzipbzip2 只能对单文件进行压缩,也就是说如果要压缩多文件,需要先经过打包过程变成单文件再压缩,.zip 格式的文件默认将打包和压缩放在一起了,而 zip 命令也不支持单独的打包再压缩。


tar命令

不加入 -z-j 参数,加入 -c 表示对文件或目录进行归档。

所以tar命令是支持单独的归档功能的,具体的压缩算法可以通过参数指定可以是 gzip 也可以是 bzip2 或其他。


使用方式


zip

命令格式

zip [-r] [压缩后文件名] [文件或目录]

命令描述


  • zip命令用来对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。

选项


  • -r: 递归处理,将指定目录下的所有文件和子目录一并处理,用于压缩目录
  • -x:压缩时排除符合条件的文件

ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ zip a.zip a.txt #压缩文件
adding: a.txt (stored 0%)
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc a.txt a.zip
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch abc/tmp.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ zip -r abc.zip abc/ -x abc/tmp.txt #压缩文件夹并忽略某些文件
adding: abc/ (stored 0%)

unzip

命令格式

unzip [选项] 文件名

命令描述

unzip命令用于解压缩由zip命令压缩的“.zip”压缩包。

选项


  • -n:解压缩时不要覆盖原有的文件;
  • -o:不必先询问用户,unzip执行后覆盖原有的文件;
  • -d <目录>&#xff1a;指定文件解压缩后所要存储的目录(不指定目录&#xff0c;默认解压到当前目录)
  • 可配合tar命令对 tar.gz 文件进行解压缩和拆包 tar -zxvf 文件名

示例

ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ unzip abc.zip -d ~ #解压到指定目录
Archive: abc.zip
creating: /home/ljb/abc/

gzip

命令格式

gzip [文件]

命令描述

gzip 压缩过后&#xff0c;其名称后面会多处 .gz 扩展名。

注意&#xff1a;gzip 只能压缩文件&#xff0c;不能压缩文件夹&#xff0c;压缩后原文件会被删除。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令&#xff0c;既方便又好用。gzip压缩常常用在http的网络请求中。

示例

ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch b.txt
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc abc.zip a.txt a.zip b.txt
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gzip b.txt #压缩后生产b.txt.gz&#xff0c;原本的文件不见了
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc abc.zip a.txt a.zip b.txt.gz

gunzip

命令格式

gunzip [文件]

命令描述

gunzip命令用来解压缩 xxx.gz 文件。

示例

ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc abc.zip a.txt a.zip b.txt.gz
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gunzip b.txt.gz
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls #解压缩成功&#xff0c;得到b.txt文件
abc abc.zip a.txt a.zip b.txt

bzip2

命令格式

bzip2 [选项] [文件]

命令描述


  • bzip2命令用于压缩 .bz2 格式的压缩包&#xff0c;是gzip的升级版本&#xff0c;可以保留原文件。
  • bzip2的压缩比比较高&#xff0c;可用于压缩较大文件。
  • bzip2也是只对文件进行压缩&#xff0c;如果相对目录进行压缩的话&#xff0c;可以用其他命令打包成一个文件(如tar)。

选项

-k&#xff08;keep&#xff09;&#xff1a;保留原文件&#xff08;不删除原文件&#xff09;

示例

# bzip2 压缩文件
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch c.txt
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ bzip2 -k c.txt
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc abc.zip a.txt a.zip b.txt c.txt c.txt.bz2
# 配合使用tar 命令&#xff0c;完成打包压缩&#xff08;后面会讲tar命令的使用&#xff09;
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ mkdir music
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -jcvf music.tar.bz2 music/
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc abc.zip a.txt a.zip b.txt c.txt c.txt.bz2 music music.tar.bz2

bunzip2

命令格式

bunzip2 [选项] [文件]

命令描述


  • 解压缩 .bz2 格式的压缩文件&#xff1b;
  • gunzip 的升级版&#xff0c;可以使用-k保留原文件&#xff1b;
  • 可以配合使用tar命令&#xff0c;完成解压缩解包&#xff1a; tar -jxvf 文件名

选项

-k&#xff08;keep&#xff09;&#xff1a;保留原文件&#xff08;不删除原文件&#xff09;

示例

#删除只剩下c.txt.bz2
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf !(c.txt.bz2)
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
c.txt.bz2
#解压bz2文件
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ bunzip2 c.txt.bz2
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
c.txt

tar

命令格式

tar [选项] [压缩后文件名] [目录]

命令描述

打包目录&#xff0c;将目录打包成一个文件&#xff0c;同时可以压缩&#xff0c;可以自由选择压缩算法。

使用tar命令时&#xff0c;如果想要打包并压缩一个目录&#xff0c;可以有两种方法进行&#xff1a;


  1. 先利用 tar 命令打包目录为一个文件&#xff0c;然后使用 gzipbzip2 压缩。
  2. 直接利用 tar 命令打包并压缩 (简单方便&#xff0c;推荐使用)。

解压时也有两种方式&#xff1a;


  1. 先使用 gunzipbunzip2 解压缩&#xff0c;再使用 tar 解包.
  2. 直接利用tar命令解压缩并解包 (简单方便&#xff0c;推荐使用)

选项


  • -c&#xff1a;打包
  • -x&#xff1a;拆包
  • -v&#xff1a;显示详细信息
  • -f&#xff1a;指定文件名

  • -z&#xff1a;表示使用 gzip 进行解压缩&#xff0c;压缩后的拓展名为 .tar.gz&#xff0c;这个拓展名在下载Linux相关安装包时很常见。
  • -j&#xff1a;表示使用 bzip2 进行解压缩&#xff0c;压缩后拓展名为 .tar.bz2

一般来说&#xff0c;-vf 参数肯定会带上的&#xff0c;根据打包/拆包选择-c或-x&#xff0c;根据使用的压缩算法选择 -z 或 -j。

示例

# 1、2为打包压缩的两种方法
# 1. 使用 tar -cvf 打包&#xff0c;然后使用gzip压缩
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ mkdir movie
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$# tar -cvf movie.tar movie/
movie/
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie.tar
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gzip movie.tar
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie.tar.gz
# 2. 使用 tar -zcvf 打包并压缩
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -zcvf movie2.tar.gz movie
movie/
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie2.tar.gz movie.tar.gz
# 3、4为解压缩并解包的两种方法
# 3. 先使用gunzip解压缩&#xff0c;然后 tar -xvf解包
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie2.tar.gz movie.tar.gz
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf movie
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie2.tar.gz movie.tar.gz
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gunzip movie.tar.gz
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie2.tar.gz movie.tar
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -xvf movie.tar
movie/
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie2.tar.gz movie.tar
# 4. 使用tar -zxvf 解压缩并解包
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie2.tar.gz movie.tar
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf movie
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -zxvf movie2.tar.gz
movie/
ljb&#64;Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie movie2.tar.gz movie.tar






推荐阅读
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
author-avatar
甘民涵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有