【建议收藏】一文全面解读Linux最常用的解压缩命令(tar、zip、unzip、gzip、guznip、bzip2、bunzip2)

news2024/12/24 0:29:11

一文全面解读Linux最常用的解压缩命令(tar、zip、unzip、gzip、guznip、bzip2、bunzip2),建议收藏

文章目录

    • 一文全面解读Linux最常用的解压缩命令(tar、zip、unzip、gzip、guznip、bzip2、bunzip2),建议收藏
      • 思维导图
      • 打开终端,进入CentOS
      • `tar`命令
        • 重要参数
        • 压缩示例1:只压缩文件`tar -cvzf`
        • 压缩示例2:压缩文件夹和目录`tar -cvzf`
        • 显示压缩包中有哪些文件`tar tvf`
        • 往压缩包中添加文件`tar -rzf`
        • 删除压缩包中的文件
        • 解压`tar.gz`到指定目录
        • 解压`tar.gz`到当前目录
        • 解压包中指定文件
      • `zip`命令
      • `unzip`命令
      • `gzip`命令
      • `gunzip`命令
      • `bzip2`命令
      • `bunzip2`
      • 我是老码农

大家好,我是老码农。

《码农说》公众号的第13篇文章来袭,今天分享一篇之前梳理过的Linux解压缩命令。

思维导图

按照惯例,我们先上思维导图,稍后会逐步展开介绍。

打开终端,进入CentOS

我是用Docker部署的CentOS,执行下面的命令进入CentOS操作系统

  • Step1:先执行docker ps查看启动中的容器,发现CentOS容器的IDa7d064b6d983

    C:\Users\86135.000>docker ps
    CONTAINER ID   IMAGE                           COMMAND                   CREATED         STATUS         PORTS                                                      NAMES
    a7d064b6d983   centos                          "/bin/bash"               6 minutes ago   Up 6 minutes                                                              oldgeek-centos
    26ffb592e1f9   mysql:8.0.27                    "docker-entrypoint.s…"   10 days ago     Up 9 minutes   33060/tcp, 0.0.0.0:3386->3306/tcp                          mysql-db-1
    7bc836d62b67   portainer/portainer-ce:latest   "/portainer"              10 days ago     Up 9 minutes   0.0.0.0:8000->8000/tcp, 0.0.0.0:9443->9443/tcp, 9000/tcp   portainer
    1c0904b11353   nginx                           "/docker-entrypoint.…"   10 days ago     Up 9 minutes   0.0.0.0:80->80/tcp                                         nginx
    
    
  • Step2: 执行docker exec命令进入容器内部

    C:\Users\86135.000>docker exec -it a7d064b6d983 /bin/bash
    [root@a7d064b6d983 /]#
    
  • Step3:创建文件夹: oldgeek

    [root@a7d064b6d983 /]# mkdir oldgeek
    [root@a7d064b6d983 /]#
    
  • Step4:切换目录,然后用vi命令创建一个文件,文件中输入写内容,尽量多输入些内容,便于比较后面的压缩率。

    [root@a7d064b6d983 /]# cd oldgeek
    [root@a7d064b6d983 oldgeek]# vi test.in
    
  • Step5:我们可以在创建一些示例用的文件夹或者文件,例如下面,大家根据自己情况创建即可

    [root@a7d064b6d983 oldgeek]# mkdir test
    [root@a7d064b6d983 oldgeek]# cd test
    [root@a7d064b6d983 test]# vi 1.in
    
  • Step6: 我创建的文件夹目录结构大致如下

    [root@a7d064b6d983 oldgeek]# ls -la
    total 12976
    drwxr-xr-x 3 root root     4096 Jan  6 01:03 .
    drwxr-xr-x 1 root root     4096 Jan  6 00:57 ..
    -rw------- 1 root root 13266944 Jan  6 00:59 .test.swp
    drwxr-xr-x 2 root root     4096 Jan  6 01:05 test
    -rw-r--r-- 1 root root      908 Jan  6 01:00 test.in
    [root@a7d064b6d983 oldgeek]#
    

tar命令

重要参数

下面只列出一些常用参数,参数很多,其他参数请查阅帮助文档

参数描述
-c建立新的压缩文件
-v显示操作过程
-f指定压缩文件
-z支持gzip解压文件
-x从压缩的文件中提取文件
-r添加文件到已经压缩的文件
-t显示压缩文件的内容
-add-file向包中添加文件

tar命令

  • 压缩:默认执行tar命令打包压缩成的文件后缀为.tar.gz;
压缩示例1:只压缩文件tar -cvzf
  • -cvzf:参数,表示创建一个压缩文件,并显示压缩过程,参数含义参照上面的表格
  • test.tar.gz: 压缩后的文件名称
  • test.in:被压缩的文件
[root@a7d064b6d983 oldgeek]# tar -cvzf test.tar.gz test.in
test.in
[root@a7d064b6d983 oldgeek]# ls
test  test.in  test.tar.gz
[root@a7d064b6d983 oldgeek]#

执行完毕后会多出一个文件test.tar.gz

压缩示例2:压缩文件夹和目录tar -cvzf
  • 最后的参数test是文件夹名称
[root@a7d064b6d983 oldgeek]# tar -cvzf folder-test.tar.gz test
test/
test/1.in
[root@a7d064b6d983 oldgeek]#
显示压缩包中有哪些文件tar tvf
[root@a7d064b6d983 oldgeek]# tar -tvf folder-test.tar.gz
drwxr-xr-x root/root         0 2024-01-06 01:05 test/
-rw-r--r-- root/root        67 2024-01-06 01:05 test/1.in
往压缩包中添加文件tar -rzf
[root@a7d064b6d983 oldgeek]# tar -rzf folder-test.tar.gz test.in
tar: Cannot update compressed archives
Try 'tar --help' or 'tar --usage' for more information.

错误解读:我们看提示出错了,是因为压缩包folder-test.tar.gz,是先归档,再压缩的文件,就不支持压缩了。

继续尝试tar -cvf压缩文件

  • tar -cvf folder-cvf.tar.gz test: 使用参数-cvf压缩文件
  • tar -rf folder-cvf.tar.gz test.in: 使用参数 -rf添加文件
  • tar -tf folder-cvf.tar.gz: 使用参数 -tf显示文件

注意:虽然刚才生成的压缩包文件folder-cvf.tar.gz, 仅仅是归档,因为没加参数z,并未使用gzip压缩,如果加参数z就不能添加文件了。

[root@a7d064b6d983 oldgeek]# ls
folder-test.tar.gz  test  test.in  test.tar.gz
[root@a7d064b6d983 oldgeek]# tar -cvf folder-cvf.tar.gz test
test/
test/1.in
[root@a7d064b6d983 oldgeek]# tar -rf folder-cvf.tar.gz test.in
[root@a7d064b6d983 oldgeek]# tar -tf folder-cvf.tar.gz
test/
test/1.in
test.in
[root@a7d064b6d983 oldgeek]#
删除压缩包中的文件
  • 在不解压情况我们也可以删除压缩包中的文件,参数--delte,如下面的示例

    • tar --delete -f folder-cvf.tar.gz test.in: 删除test.in文件
    • tar -tvf folder-cvf.tar.gz: 确认删除后的文件中是否有test.in文件
    [root@a7d064b6d983 oldgeek]# tar --delete -f folder-cvf.tar.gz test.in
    [root@a7d064b6d983 oldgeek]# tar -tvf folder-cvf.tar.gz
    drwxr-xr-x root/root         0 2024-01-06 01:05 test/
    -rw-r--r-- root/root        67 2024-01-06 01:05 test/1.in
    
解压tar.gz到指定目录
  • -C参数,后面指定文件即可

    [root@a7d064b6d983 oldgeek]# mkdir tmp
    [root@a7d064b6d983 oldgeek]# tar -xvf folder-cvf.tar.gz -C tmp
    test/
    test/1.in
    [root@a7d064b6d983 oldgeek]# ls tmp
    test
    [root@a7d064b6d983 oldgeek]#
    
解压tar.gz到当前目录
  • 不加-C参数,后面指定文件即可

    [root@a7d064b6d983 oldgeek]# tar -xvf folder-cvf.tar.gz
    
解压包中指定文件
  • 先查看压缩包的目录结构

    [root@a7d064b6d983 oldgeek]# tar -tvf folder-cvf.tar.gz
    drwxr-xr-x root/root         0 2024-01-06 01:05 test/
    -rw-r--r-- root/root        67 2024-01-06 01:05 test/1.in
    
  • 然后直接压包中的1.in文件

    [root@a7d064b6d983 oldgeek]# tar -xvf folder-cvf.tar.gz test/1.in
    test/1.in
    [root@a7d064b6d983 oldgeek]#
    

zip命令

  • 简介:压缩成zip格式的包

  • 重要参数

    参数说明
    -r递归处理,将指定目录下的所有文件和子目录一并处理
    -v显示指令执行过程或显示版本信息
    -d从压缩文件内删除指定的文件
    -u更换较新的文件到压缩文件内
    - <压缩效率>压缩效率是一个介于1-9的数值
  • 示例

    当前文件夹

    [root@5b90876298f9 oldgeek]# ls
    t1.in  test
    [root@5b90876298f9 oldgeek]#
    

    压缩示例1

    • zip test.zip test: 压缩test目录下,因为没加-r实际只压缩了文件夹,并不包含文件
    [root@5b90876298f9 oldgeek]# zip test.zip test
      adding: test/ (stored 0%)
    [root@5b90876298f9 oldgeek]# ls
    t1.in  test  test.zip
    [root@5b90876298f9 oldgeek]#
    

    压缩示例2:注意,加参数-r才会递归压缩文件夹中文件

    [root@5b90876298f9 oldgeek]# zip -r test.zip test
      adding: test/ (stored 0%)
      adding: test/t2.out (deflated 19%)
    [root@5b90876298f9 oldgeek]#
    

    压缩示例3:想压缩包中添加文件

    [root@5b90876298f9 oldgeek]# ls
    t1.in  t3.in  test  test.zip  tmp
    [root@5b90876298f9 oldgeek]# zip -u test.zip t3.in
      adding: t3.in (stored 0%)
    [root@5b90876298f9 oldgeek]#
    

unzip命令

  • 简介:解压zip格式的包

  • 重要参数

    参数说明
    -l显示压缩文件内所包含的文件
    -v显示指令执行过程或显示版本信息
    -d指定解压目录,目录不存在会创建
  • 示例

    • 解压文件unzip test.zip -d tmp, 加-d指定解压目录,不加是当前目录
    [root@5b90876298f9 oldgeek]# mkdir tmp
    [root@5b90876298f9 oldgeek]# unzip test.zip -d tmp
    Archive:  test.zip
       creating: tmp/test/
    [root@5b90876298f9 oldgeek]# ls tmp
    test
    [root@5b90876298f9 oldgeek]# ls tmp/test
    [root@5b90876298f9 oldgeek]#
    

gzip命令

  • 简介:

  • 重要参数

    参数说明
    -c保留源文件
    -r递归处理,将指定目录下的所有文件及子目录一并处理
    -v显示指令执行过程
    -d解开压缩文件
  • 示例1

    [root@5b90876298f9 oldgeek]# gzip -rv test/*
    test/t2.out:     19.4% -- replaced with test/t2.out.gz
    [root@5b90876298f9 oldgeek]# ls test
    t2.out.gz
    [root@5b90876298f9 oldgeek]#
    

gunzip命令

  • 简介:解压gz格式文件

  • 示例1:gunzip t2.out.gz是解压命令

    [root@5b90876298f9 oldgeek]# cd test
    [root@5b90876298f9 test]# ls
    t2.out.gz
    [root@5b90876298f9 test]# gunzip t2.out.gz
    [root@5b90876298f9 test]# ls
    t2.out
    [root@5b90876298f9 test]#
    

bzip2命令

  • 简介:压缩率比较高的一种压缩格式,.bz2扩展名的文件就是bzip2压缩的结果,tar中加-j参数来调用bzip2

  • 重要参数

    参数说明
    -z压缩文件
    -d解压文件
    -k源文件不删除
  • 示例1:压缩

    [root@5b90876298f9 oldgeek]# bzip2 -kz test/*
    [root@5b90876298f9 oldgeek]# ls
    t1.in  t3.in  test  tmp
    [root@5b90876298f9 oldgeek]# cd test/
    [root@5b90876298f9 test]# ls
    t2.out  t2.out.bz2
    [root@5b90876298f9 test]#
    
  • 示例2: 解压

    [root@5b90876298f9 test]# bzip2 -d t2.out.bz2
    [root@5b90876298f9 test]# ls
    t2.out
    [root@5b90876298f9 test]#
    
  • 示例3:执行bzip2 -kz test/*, 并不是压缩成一个压缩包,而是每个文件一个压缩包,这个是注意点。

    [root@5b90876298f9 oldgeek]# ls test
    t2.out  t3.out
    [root@5b90876298f9 oldgeek]# bzip2 -kz test/*
    [root@5b90876298f9 oldgeek]# ls test
    t2.out  t2.out.bz2  t3.out  t3.out.bz2
    [root@5b90876298f9 oldgeek]#
    

bunzip2

  • 简介:与bzip2相反,是解压bz2格式文件

  • 重要参数

    参数说明
    -z压缩文件
    -d解压文件
    -f覆盖已有的文件
    -k源文件不删除
  • 示例1

    • bunzip2 -d t3.out.bz2因为没有加参数-f所以会提示出错
    [root@5b90876298f9 test]# ls
    t2.out  t2.out.bz2  t3.out  t3.out.bz2
    [root@5b90876298f9 test]# bunzip2 -d t3.out.bz2
    bunzip2: Output file t3.out already exists.
    [root@5b90876298f9 test]# rm -Rf t3.out
    [root@5b90876298f9 test]# bunzip2 -d t3.out.bz2
    [root@5b90876298f9 test]# ls
    t2.out  t2.out.bz2  t3.out
    

我是老码农

大家好!我是老码农。今天关于redis stack的安装就分享到这里。

关注《码农说》,期待未来能与更多的同学有深入的交流,一同学习技术,共同成长。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

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

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

相关文章

正定矩阵的四个重要性质(附例子)

目录 一. 写在前面 二. 正定矩阵的基本定义 三. 从正定矩阵 到 特征值 四. 从特征值 到 正定矩阵 五. 从正定矩阵 到 行列式 六. 从正定矩阵 到 矩阵的主元 七. 从矩阵的主元 到 正定矩阵 八. 简单的讨论 8.1 行列式检验 8.2 特征值检验 总结 一. 写在前面 在格密码…

springboot + vue3实现增删改查分页操作

springboot vue3实现增删改查分页操作 环境最终实现效果实现功能主要框架代码实现数据库后端前端 注意事项 环境 jdk17 vue3 最终实现效果 实现功能 添加用户&#xff0c;禁用&#xff0c;启用&#xff0c;删除&#xff0c;编辑&#xff0c;分页查询 主要框架 后端 spri…

【机器学习:余弦相似度 】机器学习中余弦相似度的理解和应用

【机器学习&#xff1a;余弦相似度 】机器学习中余弦相似度的理解和应用 定义余弦距离角距离和相似度 L 2 L_2 L2​归一化欧几里得距离Otsuka–Ochiai 系数属性余弦相似度的三角不等式软余弦测量应用示例扩展GPT图像示例 在数据分析领域&#xff0c;余弦相似度用于度量内积空间…

残疾大学生找工作好难

有点肢体残疾且普通话不太标准的大学生好难找工作啊&#xff0c;怎么办&#xff1f;难道得去捡垃圾了&#xff1f;求学多年&#xff0c;好容易读了个大学(省内一本)&#xff0c;我咋这么命苦&#xff0c;找了800多家&#xff0c;面试好几家&#xff0c;都没一个要我的。

《剑指 Offer》专项突破版 - 面试题 3 :前 n 个数字二进制形式中 1 的个数(C++ 实现)

目录 前言 方法一 方法二 方法三 前言 题目链接&#xff1a;338. 比特位计数 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 输入一个非负数 n&#xff0c;请计算 0 到 n 之间每个数字的二进制形式中 1 的个数&#xff0c;并输出一个数组。例如&#xff0…

【python爬虫开发实战 情感分析】利用爬虫爬取城市评论并对其进行情感分析

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a; python网络爬虫从基础到实战 带你学习爬虫从基础到实战 深度学习带你感受AI的魅力 &#x1f4a1;往期推荐&#xff1a; ⭐️前面比较重要的基础内容&#xff1a; 【Py…

日常测试工作中哪些是必须知道的 SQL 语句?

SQL 简介 SQL(Structured Query Language&#xff0c;结构化查询语言)是一套用于管理关系数据库管理系统(RDBMS)&#xff0c;基于 ANSI&#xff08;American National Standards Institute 美国国家标准化组织&#xff09;标准的计算机语言&#xff0c;比较重要的版本是 SQL92…

2023 最火的是什么? 超维计算 + 神经网络

从chatgpt开始&#xff0c;人工智能进步的步伐似乎势不可挡&#xff0c;但支撑这些程序的人工神经网络遇到了一些重大限制&#xff0c;其他的很难推理但是人类的大脑能够通过类比进行推理&#xff0c;当我们看到新事物时&#xff0c;我们不必生长新的神经元&#xff0c;我们可以…

飞凌全志T113-i开发板视频编码测试

前言 本文测试OK113i-S开发板-视频编解码的功能 OK113i-S开发板是支持视频的编解码的&#xff0c;下面是官方介绍的编解码功能 T113-i 是一种为多媒体解码平台设计的高级应用处理器。T113-i 集成了64位玄铁C906 RISC-V CPU&#xff0c; 双核 Cortex - A7 CPU 和 HiFi4 DSP&a…

Java反射篇----第三篇

系列文章目录 文章目录 系列文章目录前言一、反射使用步骤(获取 Class 对象、调用对象方法)二、获取 Class 对象有几种方法三、利用反射动态创建对象实例前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…

所有单片机使用的汇编语言是统一的吗?

所有单片机使用的汇编语言是统一的吗&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&…

跑通大模型领域的 hello world

跑通书生浦语大模型的 3 个趣味 demo&#xff08;InternLM-Chat-7B 智能对话、Lagent工具调用解简单数学题、浦语灵笔多模态图文创作和理解&#xff09;视频和文档。 1、两个框架 InternLM 是⼀个开源的轻量级训练框架&#xff0c;旨在⽀持⼤模型训练⽽⽆需⼤量的依赖。 Lage…

TSINGSEE青犀智能分析网关V4在智慧园区车辆违停检测场景中的应用

一、背景与需求 园区作为企业办公、生产制造的重要场所&#xff0c;主要道路车辆违停等违规行为会对园区的安全造成隐患&#xff0c;并且在上下班高峰期内&#xff0c;由于发现不及时&#xff0c;车辆违停行为会造成出入口拥堵现象&#xff0c;这也成为园区管理的棘手问题。为了…

提升软件质量与效率:UI自动化测试的重要性

在软件开发领域&#xff0c;UI自动化测试工具被广泛应用&#xff0c;其意义不仅仅体现在节省时间和资源上&#xff0c;更关系到软件质量的提升、团队效率的增加&#xff0c;以及用户体验的改善。本文将探讨使用UI自动化测试工具的重要性&#xff0c;以及它在软件开发生命周期中…

JVM知识总结(简单且高效)

1. JVM内存与本地内存 JVM内存&#xff1a;受虚拟机内存大小的参数控制&#xff0c;当大小超过参数设置的大小时会报OOM。本地内存&#xff1a;本地内存不受虚拟机内存参数的限制&#xff0c;只受物理内存容量的限制&#xff1b;虽然不受参数的限制&#xff0c;如果所占内存超过…

C语言学习NO.13-字符函数(三)-strncpy,strncat,strncmp长度受限制的字符串函数

长度受限制的字符串函数介绍 一、strncpy函数的使用 &#xff08;一&#xff09;strncpy使用 #include <stdio.h> #include <string.h>int main() {char arr1[20] "asdfgdfv";char arr2[7] "zxcvbn";strncpy(arr1, arr2, 4);printf("…

Origin无法使用主题管理器相关功能或报错:Err, Save Theme dialog error!

问题描述 在使用origin绘图时&#xff0c;往往需要进行大批量绘制同样类型的图。如果每个图都不断地去修改相关设置&#xff0c;无疑是浪费了许多宝贵的时间。为了提高绘图效率&#xff0c;了解到了主题管理器&#xff0c;可在“工具–主题管理器”找到。 然而&#xff0c;当我…

计算机毕业设计-----SSM宠物商城带后台管理系统

项目介绍 该项目为前后台项目&#xff0c;分为普通用户与管理员两种角色&#xff0c;前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 用户角色包含以下功能&#xff1a; 加入购物车,发表留言,提交订单,查看订单信息,会员注册,登录页面等功能。 管理员角色包含以下…

静态网页设计——极乐迪斯科(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV11k4y1X7mH/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…

C++补充内容--EasyX-UI界面

esay x 其他 地图打印(利用二维数组) 双缓冲 当我们绘制一张图 然后另一张图盖住前一张图的某个部分的时候 由于while的存在 会导致 两张图不停的闪烁 所以加入双缓冲可以解决这个问题 开启双缓冲 之后等待Flush或者End 才会进行图片的绘制 不然不会进行图片的绘制,这样就可…