09_解压与打包工具:zip, gzip, bzip2 和 tar 使用指南

系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客

文章目录

    • 1. `zip`
    • 2. `gzip`
    • 3. `zcat`
    • 4. `bzip2`
    • 5. `tar`


在Linux系统中,经常需要对文件和目录进行压缩和解压以节省空间或方便传输。本文将详细介绍四种常用的压缩和打包工具:zip, gzip, bzip2, 和 tar,包括它们的语法、参数和实际使用示例。

1. zip

zip是一个用于压缩和打包文件的工具。

安装:

yum install -y zip unzip

语法:

zip [选项] 压缩包名 源文件或目录

参数:

  • -r:递归地压缩目录下的所有文件和子目录。
  • -q:只显示警告和错误信息,不显示详细的压缩过程。
  • -j:只压缩文件,不保存目录结构。
  • -m:将源文件移动到压缩包后,而非复制。
  • -u:仅更新压缩包中新添加或修改的文件。
  • -d:从压缩包中删除指定的文件。
  • -l:显示压缩包中的文件列表。
  • -x:排除指定的文件或目录。
  • -P:设置密码。

示例:

  • 压缩文件:

    zip compressed.zip file.txt
    

    将file.txt压缩为compressed.zip。

  • 递归压缩目录:

    zip -r compressed.zip directory/
    

    将directory目录下的所有文件和子目录递归地压缩为compressed.zip。

  • 添加文件到已有的压缩包:

    zip -u compressed.zip new_file.txt
    

    将new_file.txt添加到已有的compressed.zip压缩包中。

2. gzip

gzip是一个用于压缩文件的工具。

语法:

gzip [选项] 文件

参数:

  • -d:解压缩文件。
  • -k:保留原始文件,不删除压缩文件。
  • -l:显示压缩文件的信息,但不解压缩。
  • -r:递归地压缩目录下的所有文件。
  • -v:显示详细的压缩过程。

示例:

  • 压缩文件:

    gzip file.txt
    

    将file.txt压缩为file.txt.gz,并删除原始文件。

  • 解压缩文件:

    gzip -d file.txt.gz
    

    解压缩file.txt.gz为file.txt,并保留原始压缩文件。

3. zcat

zcat用于查看.gz压缩文件的内容而不解压。

示例:

zcat    my.zip

4. bzip2

bzip2是一个用于压缩文件的工具,通常比gzip提供更高的压缩率。

语法:

bzip2 [选项] 文件

参数:

  • -d:解压缩文件。
  • -k:保留原始文件,不删除压缩文件。
  • -z:压缩文件(默认行为)。
  • -v:显示详细的压缩过程。

示例:

  • 压缩文件:

    bzip2 file.txt
    

    将file.txt压缩为file.txt.bz2,并删除原始文件。

  • 解压缩文件:

    bzip2 -d file.txt.bz2
    

    解压缩file.txt.bz2为file.txt,并保留原始压缩文件。

5. tar

tar是一个用于打包文件和目录的工具,可以与gzipbzip2结合使用进行压缩。

语法:

tar [选项] 目标文件或目录

参数:

  • -c:创建新的归档文件。
  • -x:从归档文件中提取文件。
  • -f:指定归档文件的名称。
  • -v:显示详细的归档过程。
  • -z:同时使用gzip对归档文件进行压缩或解压缩。
  • -j:同时使用bzip2对归档文件进行压缩或解压缩。

示例:

  • 打包:
tar -c [选项] 目标文件/目录

选项包括:
-x:解压/解包
-c:创建
-t:查看
-r:追加文件到已存在的tar包
-f:指定文件名(必选项)
-p:保持权限不变
-v:操作过程详细信息

示例:
tar -cvf aa.tar /etc/services  # 创建一个名为aa.tar的tar包,并将/etc/services打包进去
tar -tvf aa.tar               # 查看aa.tar中的内容
tar -rvf aa.tar other.txt      # 将other.txt文件追加到已存在的aa.tar包中
tar -xvf aa.tar               # 解压aa.tar到当前目录
tar -xvf aa.tar -C /root/dir/ # 解压aa.tar到指定目录/root/dir中
  • 压缩为gzip格式:
tar -cz [选项] 目标文件/目录

选项包括:
-z:指定压缩格式为gzip,后缀为.gz
-f:指定文件名(必选项)

示例:
tar -czvf bb.tar.gz /etc/services /tmp  # 将/etc/services和/tmp目录打包并压缩为bb.tar.gz
tar -tzvf bb.tar.gz                    # 查看bb.tar.gz中的内容
tar -xzvf bb.tar.gz                    # 解压bb.tar.gz到当前目录
tar -xzvf bb.tar.gz -C /tmp            # 解压bb.tar.gz到指定目录/tmp中
  • 压缩为bzip2格式:
tar -cj [选项] 目标文件/目录

选项包括:
-j:指定压缩格式为bzip2,后缀为.bz2
-f:指定文件名(必选项)

示例:
tar -jcvf cc.tar.bz2 /etc/services    # 将/etc/services打包并压缩为cc.tar.bz2
tar -tjvf cc.tar.bz2                  # 查看cc.tar.bz2中的内容
tar -xjvf cc.tar.bz2                  # 解压cc.tar.bz2到当前目录
tar -xjvf cc.tar.bz2 -C /tmp          # 解压cc.tar.bz2到指定目录/tmp中

需要注意的是,压缩包无法直接添加内容进去,需要先解压成tar包,添加内容后再进行压缩。另外,压缩格式参数-z-j可以根据压缩包的后缀自动识别,所以在查看和解压时可以省略这两个参数。

  • 追加文件到已存在的tar包:
tar -r [选项] 目标文件 将要追加的文件

选项包括:
-r:将文件追加到已存在的tar包
-f:指定文件名(必选项)

示例:
tar -rvf aa.tar other.txt  # 将other.txt文件追加到已存在的aa.tar包中

请注意,使用-r参数时,要确保tar包的格式不是压缩格式(如.gz.bz2),否则无法更新压缩后的包。如果需要追加文件到压缩的tar包中,需要先解压成普通的tar包,然后再进行追加操作。

最后:压缩与解压示例

  • gzip压缩:
tar -czvf bb.tar.gz /etc/services
  • bzip2压缩:
tar -cjvf cc.tar.bz2 /etc/services
  • 追加文件到tar包:
tar -rvf aa.tar other.txt

使用这些工具,可以适应不同的需求和场景对文件进行压缩、解压和打包。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

原型模式和建造模式的区别

原型模式(Prototype Pattern)和建造者模式(Builder Pattern)虽然都是创建型设计模式,但它们的应用场景和实现方式有着显著的区别。以下是二者的详细对比: 1. 意图和应用场景 原型模式: 意图&a…

【论文阅读】2022 TChecker Precise Static Inter-Procedural Analysis for Detecting

总览 “TChecker: Precise Static Inter - Procedural Analysis for Detecting Taint - Style Vulnerabilities in PHP Applications” 由香港中文大学的 Changhua Luo、Penghui Li 和 Wei Meng 撰写。论文介绍了 TChecker 工具,用于检测 PHP 应用中的污点式漏洞&am…

【Linux】为什么环境变量具有全局性?共享?写时拷贝优化?

环境变量表具有全局性的原因: 环境变量表之所以具有全局性的特征,主要是因为它们是在进程上下文中维护的,并且在大多数操作系统中,当一个进程创建另一个进程(即父进程创建子进程)时,子进程会继承…

动态路由:RIP实验

1.划分IP 2.配置环回 3.接口配置IP地址 4.进入RIP中,关闭手工汇总,选择版本号,宣告 5.ping命令查看是否全网通 6.在R3上配置缺省路由 [R3-rip-1]default-route originate 在边界路由器上下发缺省 7.为了安全配置手工认证 [R1-Gigab…

qt QVariant详解

QVariant是Qt框架中一个功能强大的变体类,它提供了一种通用的方式来存储Qt对象及其他类的值,能够以类似于指针的方式存储任意类型的值。 一、 主要特性 通用性:QVariant可以存储几乎所有数据类型,包括基本数据类型(如…

刷题小记9:回溯

回溯算法模板: void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理…

html+vue实现动态复杂table

1、效果 2、代码 <div style"overflow: scroll; width: 100%;height: calc(100% - 80px);"><table class"table table-bordered" style"width: auto;table-layout: fixed;"><thead style"position: sticky;top: -1px;z-inde…

【C++干货篇】——类和对象的魅力(四)

【C干货篇】——类和对象的魅力&#xff08;四&#xff09; 1.取地址运算符的重载 1.1const 成员函数 将const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后面。const实际修饰该成员函数隐含的this指针&#xff08;this指向的对…

IDEA如何查看所有的断点(Breakpoints)并关闭

前言 我们在使用IDEA开发Java应用时&#xff0c;基本上都需要进行打断点的操作&#xff0c;这方便我们排查BUG&#xff0c;也方便我们查看设计的是否正确。 不过有时候&#xff0c;我们不希望进入断点&#xff0c;这时候除了点击断点关闭外&#xff0c;有没有更快速的方便关闭…

深入浅出剖析重量级文生图模型Flux.1

24年8月&#xff0c;Flux.1的发布又一次火爆整个AI绘图领域&#xff0c; 号称AI文生图的“新标杆”&#xff0c;刷新AI图像领域的新格局。 Flux是一款由Black Forest Labs开发的尖端AI图像生成工具&#xff0c;旨在通过先进的技术将文本提示转化为高质量的图像。Flux AI支持多…

利用 OBS 推送 WEBRTC 流到 smart rtmpd

webrtc whip 推流 & whep 拉流简介 RFC 定义 通用的 webrtc 对于 SDP 协议的交换已经有对应的 RFC 草案出炉了。这就是 WHIP( push stream ) & WHEP ( pull stream ) . WHIP RFC Link: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html WHEP RFC Link:…

总分441数一149专137东南大学820信号数电考研经验电子信息与通信工程电路原920专业基础综合,真题,大纲,参考书。

一. 写在前面的话 本人是23年考生&#xff0c;本科就读于西电电子信息工程&#xff0c;以441分总分&#xff08;数学一149&#xff0c;英语83&#xff0c;专业课820&#xff08;原920信号和数电专业基础综合&#xff09;137&#xff0c;政治73&#xff09;考上东南信院电路与系…

虚拟机(VMwara Workstation17)保姆级别的安装(附软件获取途径)

文章目录 一、虚拟机的作用二、虚拟机的获取三、虚拟机的安装步骤四、总结 一、虚拟机的作用 压根不需要给自己的电脑重装系统&#xff0c;就可以使用Linux系统。简单来说就是虚拟出一个计算机&#xff0c;安装Linux系统&#xff0c;便于学习和工作 关于虚拟机的介绍&#xf…

初识Linux · 预备文件系统

目录 前言&#xff1a; 看看物理磁盘 了解磁盘的存储结构 对磁盘进行逻辑抽象 前言&#xff1a; 我们在上文探讨的问题都是基于文件是被打开的情况&#xff0c;那么对于文件没有被打开的情况&#xff0c;我们是没有探讨过的&#xff0c;而本文作为文件系统的预备知识&…

多ip访问多网站

1.前提配置 关防火墙 关selinux 2.安装web服务程序nginx 3.当前主机添加多地址&#xff08;ip a&#xff09; 4.自定义nginx配置文件通过多地址区分多网站 /etc/nginx/conf.d/test_ip.conf server { #标记为一个虚拟主机} 5.根据配置在主机创建数据文件 6.重启服务加载配…

【ROS2】构建导航工程

1、ROS小车组成 ROS小车由三大件组成:运动底盘、ROS主控、导航传感器。 1.1 运动底盘 运动底盘的硬件由车轮、电机(带编码器)、电机驱动器、STM32控制器、电池等组成。 涉及的知识点主要为:STM32单片机程序、机器人运动学分析 1)STM32单片机程序 单片机程序框架如下:…

Modbus TCP报错:Response length is only 0 bytes

问题描述&#xff1a; 使用modbus_tk库&#xff0c;通过Modbus tcp连接PLC时&#xff0c;python中的一个报错信息&#xff1a; Response length is only 0 bytes报错原因&#xff1a; 与Modbus TCP 服务端建立连接后没有断开&#xff0c;继续作为长连接使用&#xff0c;客户端…

vue3 + ts + element-plus 二次封装 el-dialog

实现效果&#xff1a; 组件代码&#xff1a;注意 style 不能为 scoped <template><el-dialog class"my-dialog" v-model"isVisible" :show-close"false" :close-on-click-modal"false" :modal"false"modal-class&…

Java调用大模型 - Spring AI 初体验

Spring AI&#xff1a;为Java开发者提供高效的大模型应用框架 当前Java调用大模型时面临缺乏高效AI应用框架的问题。Spring作为资深的Java应用框架提供商&#xff0c;通过推出Spring AI来解决这一挑战。它借鉴了LangChain的核心理念&#xff0c;并结合了Java面向对象编程的优势…

提升网络安全防御有效性,服务器DDoS防御软件解读

从购物、银行业务、旅行计划到娱乐&#xff0c;人们越来越多地转向数字领域来促进他们的公共和私人生活。然而&#xff0c;当DDoS攻击汹涌而至&#xff0c;企业很可能会陷入数小时或数天的混乱局面&#xff0c;用户的体验也会大打折扣。根据DDoS-Guard发布的数据&#xff0c;20…