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

news2024/11/15 7:07:12

文章目录

    • 归类
      • 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 <目录>:指定文件解压缩后所要存储的目录(不指定目录,默认解压到当前目录)
  • 可配合tar命令对 tar.gz 文件进行解压缩和拆包 tar -zxvf 文件名

示例

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

gzip

命令格式

gzip [文件]

命令描述

gzip 压缩过后,其名称后面会多处 .gz 扩展名。

注意:gzip 只能压缩文件,不能压缩文件夹,压缩后原文件会被删除。

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

示例

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

gunzip

命令格式

gunzip [文件]

命令描述

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

示例

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

bzip2

命令格式

bzip2 [选项] [文件]

命令描述

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

选项

-k(keep):保留原文件(不删除原文件)

示例

# bzip2 压缩文件
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch c.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ bzip2 -k c.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  abc.zip  a.txt  a.zip  b.txt  c.txt  c.txt.bz2

# 配合使用tar 命令,完成打包压缩(后面会讲tar命令的使用)
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ mkdir music
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -jcvf music.tar.bz2 music/
ljb@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 格式的压缩文件;
  • gunzip 的升级版,可以使用-k保留原文件;
  • 可以配合使用tar命令,完成解压缩解包: tar -jxvf 文件名

选项

-k(keep):保留原文件(不删除原文件)

示例

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

tar

命令格式

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

命令描述

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

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

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

解压时也有两种方式:

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

选项

  • -c:打包
  • -x:拆包
  • -v:显示详细信息
  • -f:指定文件名
  • -z:表示使用 gzip 进行解压缩,压缩后的拓展名为 .tar.gz,这个拓展名在下载Linux相关安装包时很常见。
  • -j:表示使用 bzip2 进行解压缩,压缩后拓展名为 .tar.bz2

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

示例

# 1、2为打包压缩的两种方法
# 1. 使用 tar -cvf 打包,然后使用gzip压缩
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ mkdir movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$# tar -cvf movie.tar movie/
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gzip movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie.tar.gz

# 2. 使用 tar -zcvf 打包并压缩
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -zcvf movie2.tar.gz movie
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar.gz

# 3、4为解压缩并解包的两种方法

# 3. 先使用gunzip解压缩,然后 tar -xvf解包
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie2.tar.gz  movie.tar.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gunzip movie.tar.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie2.tar.gz  movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -xvf movie.tar
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar

# 4. 使用tar -zxvf 解压缩并解包
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -zxvf movie2.tar.gz
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt OpenGL(二十五)——Qt OpenGL 核心模式-Qt封装的函数实现彩色三角形

Qt OpenGL(二十五)——Qt OpenGL 核心模式-Qt封装的函数实现彩色三角形 上一篇文章我们绘制了彩色的三角形,接下来其实就应该是让这个三角形旋转起来了,但是,旋转起来之前,还是想通过Qt自己的封装类实现彩色的三角形,并且让他旋转起来。 这才我(冯一川)是写这个系列…

编程之美4 Nim游戏

Tag&#xff1a;贪心&#xff1b;动态规划 题目 N块石头排成一行&#xff0c;每块石头有各自固定的位置。两个玩家依次取石头&#xff0c;每个玩家每次可以取其中任意一块石头&#xff0c;或者相邻的两块石头&#xff0c;石头在游戏过程中不能移位&#xff08;即编号不会改变…

在ASF中使用On Demand生产DEM等产品时使用不同参考DEM的区别

在ASF中使用On Dmand生产DEM等产品时使用不同参考DEM 主要有两种DEM&#xff0c;分别是SRTM和COP-DEM&#xff08;GLO-30&#xff09; 当我们添加Dmand进程之后&#xff0c;点击On Demand Queue 然后进入On Demand界面&#xff08;如下图所示&#xff09; 在Processing Op…

MySQL主从复制介绍及实操演示

1. 基本概念 MySQL主从复制的主要效果简单来说是将两个单独的数据库服务器关联起来&#xff0c;对于主机&#xff08;Master&#xff09;以及从机&#xff08;Slave&#xff09;&#xff0c;从机的数据会伴随着主机数据的变化而同步 2. 主从复制作用 可以解决单个MySQL数据库…

leetcode 63. 不同路径 II

文章目录题目思考代码和注释总结题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑…

Android WorkManager使用介绍

一、引言 WorkManager 是google提供的异步执行任务的管理框架&#xff0c;是 Android Jetpack 的一部分&#xff0c;会根据手机的API版本和应用程序的状态来选择适当的方式执行任务。   在后台执行任务的需求是非常常见的&#xff0c;Android也提供了多种解决方案&#xff0c…

高阶数据结构:并查集

本篇主要是介绍并查集的内容&#xff1a;所谓并查集就是一种描述不相交集合的数据结构&#xff0c;即若一个问题涉及多个元素&#xff0c;它们可以划分到不同集合&#xff0c;同属一个集合内的元素等价&#xff0c;不同集合内的元素不等价。 文章目录 一、并查集原理二、并查集…

Prophet在R语言中进行时间序列数据预测

您将学习如何使用Prophet&#xff08;在R中&#xff09;解决一个常见问题&#xff1a;预测公司明年的每日订单。 最近我们被客户要求撰写关于时间序列的研究报告&#xff0c;包括一些图形和统计输出。 数据准备与探索 Prophet最适合每日数据以及至少一年的历史数据。 我们将…

Ansible

Ansible是什么&#xff1f; Ansible是一个基于eythn开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pbet和Saltstack能实现的功能&#xff0c;As;ble基本上都可以实现。Ansible能批量配置、部署、管理上…

MongoDB入门与实战-第五章-MongoDB副本集

目录参考一、副本集概念1、**主要功能**2、主从复制和副本集区别3、复制结构图二、副本集成员角色1.主节点2.副本节点3.仲裁节点三、副本集架构&#xff08;一主一副本一仲裁&#xff09;1、**设置读操作权限&#xff1a;**2、取消作为奴隶节点的读权限四、选举原则1、触发条件…

时序逻辑电路

数字电路分为两大类&#xff0c;组合逻辑电路和时序逻辑电路 今天我们要开始学习的是时序逻辑电路&#xff0c;要求大家掌握 同步逻辑电路的分析方法 常用的时序逻辑电路的使用方法 当然由于时序逻辑电路的特点&#xff0c;使得时序逻辑电路难度远远大于组合逻辑电路 电路任…

一文详解Redis键过期策略,最全文档

文章目录1 设置带过期时间的 key1.1 刷新过期时间1.2 Redis 之前的 2.1.3 的差异1.3 返回值1.4 示例1.5 带过期时间的 key1.6 过期精度1.7 过期和持久化2 Redis的key过期策略2.1 惰性删除2.1.1 优点2.1.2 缺点定时删除优点缺点2.2 定期删除优点缺点难点定期删除流程Redis采用的…

SpringMVC异常处理器

1.异常 1.1 异常结构层次 异常主要分为&#xff1a;错误、一般性异常&#xff08;检查异常&#xff09;、运行期异常&#xff08;非受控异常&#xff09; 错误&#xff1a;如果应用程序出现了 Error&#xff0c;那么将无法恢复&#xff0c;只能重新启动应用程序&#xff0c;最…

VUE3-工作笔记-06

本节&#xff1a;总结11月份学习的内容 1.如果有很多个功能是一样的&#xff0c;那就先写一个测试很多次&#xff0c;确定没有bug再全部改&#xff0c;不然辛辛苦苦全部改了之后&#xff0c;发现还是有bug又要重新改&#xff0c;最好是写成组件的形式&#xff0c;写成hook。 …

ACM第三周---周训---题目合集.

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石.CSDN &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;ACM周训练题目合集.CSDN &#x1f4ac;总结&#xff1a…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.7 数据卷命令

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.7 数据卷命令10.7.1 数据卷10.7.2 操作数据卷10.7.3 直接…

度量方法总结

本文目录0 引言1 度量差异性1.1 闵可夫斯基距离&#xff08;Minkowski distance&#xff09;1.1.1 欧氏距离&#xff08;Euclidean distance&#xff09;1.1.2 曼哈顿距离&#xff08;Manhattan distance&#xff09;1.1.3 切比雪夫距离&#xff08;Chebyshev distance&#xf…

[附源码]JAVA毕业设计课程网站设计(系统+LW)

[附源码]JAVA毕业设计课程网站设计&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

Spring Boot 框架整合 MyBatis 连接数据库,详细说明

在我们日常的开发过程中&#xff0c;肯定不可避免的会使用到数据库以及 SQL 语句。比如&#xff0c;刚开始学习 Java 的时候可能会遇到 JDBC&#xff0c;它是连接 Java 和数据库的桥梁&#xff0c;我们可以使用 JDBC 来建立与数据库之间的连接并且执行相应的 SQL 语句。虽然 JD…

数据结构—List集合

文章目录一、ArrayList集合1&#xff0c;ArrayList集合的特点2&#xff0c;ArrayList集合的一些方法添加元素个数获取指定位置元素指定位置插入元素替换元素移除元素判断是否为空判断是否包含元素移除指定元素迭代器遍历集合二、LinkedList集合1&#xff0c;LinkedList集合的特…