当前位置: 首页 > news >正文

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

文章目录

    • 归类
      • 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

相关文章:

  • C#语言进阶
  • python从零开始学习深度学习01——神经网络反向传播的链式求导
  • 2024最新独立版校园跑腿校园社区小程序源码+附教程 适合跑腿,外卖,表白,二手,快递等校园服务
  • Web常见的攻击方式及其防御策略
  • js-vue页面路由跳转(存入缓存)-多个复杂循环跳转返回
  • Java学习之File类
  • 【三维重建】【slam】【分块重建】LocalRF:逐步优化的局部辐射场的鲁棒视图合成
  • [蓝桥杯 2021 省 AB2] 小平方
  • ubuntu+QT+ OpenGL环境搭建和绘图
  • 数据隐私安全趋势
  • 网络安全之安全事件监测
  • 福特锐界2021plus 汽车保养手册
  • Python源码剖析1-整数对象PyIntObject
  • 【论文笔记】Radatron: Accurate Detection Using Multi-Resolution Cascaded MIMO Radar
  • 网课题库接口调用方法
  • [附源码]计算机毕业设计大学生心理健康测评系统
  • Blackmagic黑魔法摄像机braw视频文件修复方法
  • 【怎么理解回流与重绘?以及触发场景】
  • Java项目:SSM共享汽车租赁平台
  • Spring框架(十一):手动实现一个@Component,讲一讲Spring的工厂后处理器
  • 集合java
  • MAML:User Diverse Preference Modeling by Multimodal AttentiveMetric Learning
  • 基于MATLAB的一级倒立摆控制仿真,带GUI界面操作显示倒立摆动画,控制器控制输出
  • qt人员管理模块(模块化程序)功能块复制直接使用不冲突
  • 【算法】排序——希尔排序
  • 年产2万吨山楂酒工厂的设计-包装工段及车间的设计(lunwen+任务书+cad图纸)
  • Prophet在R语言中进行时间序列数据预测
  • JavaWeb_第4章_RequestResponse
  • 10 Minimax估计和Bayes估计
  • [NOIP2006 提高组] 作业调度方案
  • 宏鑫科技在创业板过会:前三季度收入约7亿元,王文志为实控人
  • Spring实战之bean重复、指定bean的名字、消除bean的歧义性