Linux压缩命令:zip命令详解

ops/2024/9/18 12:04:43/ 标签: linux, 运维, 服务器, 文件管理, 归档, 解压缩, 目录

目录

一、概述

二、术语

三、基本语法

1、语法

2、常用选项

四、选项和示例

1. -r - 递归压缩目录及其子目录

2. -j - 只加入文件而不保留目录结构。

3. -m - 压缩后从文件系统中删除原文件。

4. -u - 更新已存在的 ZIP 文件中的文件。

5. -q - 静默模式,不显示任何消息。

6. -P password - 使用密码加密 ZIP 文件。

7. -l - 显示压缩后的文件列表。

8. -v - 显示详细的压缩信息。

五、常见用法

1. 压缩单个文件  

2. 压缩目录及其子目录  

3. 压缩多个文件  

4. 压缩文件并删除原始文件  

5. 压缩文件并添加密码  

6. 压缩文件并保持静默模式

7. 查看 ZIP 文件内容

六、高级示例

七、其他


一、概述

        zip 命令在 Linux 中用于创建 ZIP 格式的压缩文件。ZIP 是一种广泛使用的文件压缩格式,它可以压缩单个或多个文件及目录,同时还可以添加密码保护。

二、术语

         归档(Archiving):将多个文件和目录合并成一个文件的过程。

         压缩(Compression):通过特定的算法减少文件大小的过程。

       解压缩(Decompression):把压缩的文件重新释放出来的过程。

三、基本语法

1、语法

        zip [选项] [压缩文件名] [要压缩的文件或目录]

  • 压缩后文件名:指定压缩后生成的文件名,扩展名通常为.zip。
  • 原文件名或目录:指定要压缩的文件或目录名。可以指定多个文件或目录进行压缩。

2、常用选项

        zip命令提供了丰富的选项,以满足不同的压缩需求。以下是一些常用的选项:

  • -r:递归地将目录下的所有文件和子目录都打包到ZIP文件中。
  • -q:安静模式,不显示压缩过程。
  • -v:详细模式,显示压缩过程的详细信息。
  • -u:更新ZIP文件,只添加新的文件和修改过的文件。
  • -d:从ZIP文件中删除指定的文件。
  • -l:列出ZIP文件中的文件信息。
  • -9:使用最高级别的压缩(压缩率最高),但压缩速度最慢。
  • -P:设置密码来保护压缩文件的内容。
  • -s:分割ZIP文件为指定大小的多个文件,以便在存储和传输时更方便。

3、帮助获取

       在命令行中输入指令:

        zip --h

       出现如下图所示的帮助信息:

四、选项和示例

        zip 命令有许多选项可用于控制压缩行为。这里列举一些常用选项.

1. -r - 递归压缩目录及其子目录

   - 示例:zip -r archive.zip folder/

  - 将 folder 及其所有子目录压缩到 archive.zip。

2. -j - 只加入文件而不保留目录结构。

   - 示例:zip -j archive.zip folder/

  - 将 folder 下的所有文件压缩到 archive.zip,但不会保留 folder 的目录结构。

3. -m - 压缩后从文件系统中删除原文件。

   - 示例:zip -m archive.zip file.txt

   - 将 file.txt 压缩到 archive.zip 并从文件系统中删除 file.txt。

4. -u - 更新已存在的 ZIP 文件中的文件。

   - 示例:zip -u archive.zip file.txt

   - 如果 file.txt 已存在于 archive.zip 中,则只在文件被修改时更新。

5. -q - 静默模式,不显示任何消息。

   - 示例:zip -q archive.zip file.txt

   - 压缩 file.txt 到 archive.zip 时不显示任何消息。

6. -P password - 使用密码加密 ZIP 文件。

   - 示例:zip -P mypassword archive.zip file.txt

   - 使用密码 mypassword 加密 file.txt。

7. -l - 显示压缩后的文件列表。

   - 示例:zip -l archive.zip

   - 列出 archive.zip 中的文件。

8. -v - 显示详细的压缩信息。

   - 示例:zip -v archive.zip file.txt

   - 显示详细的压缩信息。

五、常见用法

1. 压缩单个文件  

           zip archive.zip file.txt  

   这会将 file.txt 压缩到 archive.zip 文件中。

2. 压缩目录及其子目录  

           zip -r archive.zip dir1/

      这会递归地压缩 folder 及其所有子目录到 archive.zip。

      结果如下所示:

3. 压缩多个文件  

           zip archive.zip file1.txt file2.txt

      这会将 file1.txt 和 file2.txt 压缩到 archive.zip。

4. 压缩文件并删除原始文件  

           zip -m archive.zip file.txt

      这会将 file.txt 压缩到 archive.zip 并从文件系统中删除 file.txt。

5. 压缩文件并添加密码  

   zip -P mypassword archive.zip file.txt

      这会使用密码 mypassword 加密 file.txt。

6. 压缩文件并保持静默模式

      zip -q archive.zip file.txt

      这会在静默模式下压缩 file.txt。

7. 查看 ZIP 文件内容

      zip -l archive.zip

      这会显示 archive.zip 中包含的文件列表。

六、高级示例

        假设你想将目录 my_documents 及其所有子目录压缩到 documents.zip 文件中,并且希望添加密码保护,可以使用如下命令:

        zip -r -P mypassword documents.zip my_documents/

        这将会创建一个名为 documents.zip 的 ZIP 文件,并使用密码 mypassword 对文件进行加密。

七、其他

        - 当使用 -P 选项添加密码时,请确保记住密码,否则无法解压文件。

        - 如果要解压文件,可以使用 unzip 命令。

        - 如果压缩过程中遇到问题,可以尝试查看 zip 命令的手册页获取更多帮助: 

                  man zip

        zip 命令是非常有用的工具,特别是在处理大量文件和目录的压缩时。希望这些信息对你有所帮助!


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。



http://www.ppmy.cn/ops/89551.html

相关文章

【算法】浅析分支限界法

分支限界法:逐步探索,高效搜索 1. 引言 在计算机科学中,分支限界法是一种用于搜索树或图的算法,它与深度优先搜索(DFS)和广度优先搜索(BFS)不同,它采用一种自底向上的策…

【笔记1-6】Qt bug记录:Qt6 无法使用qsort函数排序

在进行Qt5向Qt6升级的过程中,发现Qt6会编译时会出现以下错误,找不到qsort的定义 一开始以为应该是需要头文件或者.pro文件追加一些配置的问题,但是按照下面的提示追加了两个头文件后也没有效果 再进一步调查,找到了下面的文章&a…

Socket学习

1.Socket编程基本概念 Socket:Socket是网络通信的基本概念,用于描述IP地址和端口的组合,它是网络编程的基础 服务端和客户端:服务器监听客户端的连接请求,客户端发起连接 TCP/IP:TCP是传输控制协议&…

深信服day9:文件后缀名和Cookie和前后端地址区别

一、文件后缀名 ISO:镜像文件 RAR:压缩包 html:网页 zip:压缩包 exe:可执行文件 pdf:pdf文档 rm:视频文件 avi:视频文件 tmp:临时文件 mdf:虚拟光驱…

C#初级——List 容器

容器 在C#中&#xff0c;容器通常指的是用于存储和组织数据的集合类。 本文介绍的容器是动态数组&#xff1a;List<T> 内部使用数组来存储元素&#xff0c;当添加元素超出当前数组容量时&#xff0c;会自动调整大小&#xff08;扩容&#xff09;。 list容器 List<&g…

JAVA—面向对象编程高级

学习了一定基础后&#xff0c;开始更加深入的学习面向对象&#xff0c;包含static,final两个关键字&#xff0c;面向对象编程三大特征之继承和多态。以及对于抽象类&#xff0c;内部类&#xff0c;接口&#xff0c;枚举&#xff0c;泛型的学习。 目录 1.static &#xff08;…

前端基于 axios 实现批量任务调度管理器 demo

一、背景介绍 这是一个基于 axios 实现的批量任务调度管理器的 demo。它使用了axios、promise 等多种技术和原理来实现批量处理多个异步请求&#xff0c;并确保所有请求都能正确处理并报告其状态。 假设有一个场景&#xff1a;有一个任务列表&#xff0c;有单个任务的处理功能…

【算法】递归实现二分查找(优化)以及非递归实现二分查找

递归实现二分查找 思路分析 1.首先确定该数组中间的下标 mid (left right) / 2; 2.然后让需要查找的数 findVal 和 arr[mid] 比较 findVal > arr[mid]&#xff0c;说明要查找的数在 arr[mid] 右边&#xff0c;需要向右递归findVal < arr[mid]&#xff0c;说明要查…

【软件测试】--接口测试

1. 接口用例设计 接口测试的测试点 功能测试 单接口功能&#xff1a; 手工测试中的单个业务模块&#xff0c;一般对应一个接口 登陆业务 --> 登陆接口加入购物车业务 --> 加入购物车接口订单业务 --> 订单接口支付业务 --> 支付接口 借助工具、代码。绕开前端界面…

CC++内存魔术:掌控无形资源

hello,uu们,今天呢我们来详细讲解C&C的内存管理,好啦,废话不多讲,开干 1:C/C内存分布 2:C语言中动态内存管理方式:malloc/calloc/realloc/free 3:C内存管理方式 3.1:new/delete操作内置类型 3.1.1:代码1 3.1.2:代码2 3.2:new和delete操作自定义类型 3.2.1:C语言创建…

Go+Redis零基础到用户管理系统API实战_20240730 课程笔记

概述 如果您没有Golang的基础&#xff0c;应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227 基础不好的同学每节课的代码最好配合视频进…

图解RocketMQ之消息如何存储

大家好&#xff0c;我是苍何。 人一辈子最值得炫耀的不应该是你的财富有多少&#xff08;虽然这话说得有点违心&#xff0c;呵呵&#xff09;&#xff0c;而是你的学习能力。技术更新迭代的速度非常快&#xff0c;那作为程序员&#xff0c;我们就应该拥有一颗拥抱变化的心&…

20. 有效的括号

思路&#xff1a; 匹配表&#xff1a;定义一个函数&#xff0c;返回每个右括号对应的左括号。&#xff08;哈希表匹配也行&#xff09;栈操作&#xff1a;遍历字符串中的字符&#xff0c;左括号入栈&#xff0c;右括号则与栈顶元素匹配。最终检查&#xff1a;遍历结束后&#…

计算机网络-http协议和https的加密原理

HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是用于在万维网&#xff08;World Wide Web&#xff09;上传输超文本的基础协议。它定义了客户端&#xff08;通常是浏览器&#xff09;和服务器之间的文本数据传输格式和规则。以下是HTTP的…

《亿级流量系统架构设计与实战》第三章 通用的服务可用性治理手段

通用的服务可用性治理手段 一、上游保护下游1、重试2、熔断3、资源 二、下游自我保护1、幂等2、限流3、降级 内容总结自《亿级流量系统架构设计与实战》 一、上游保护下游 1、重试 接口超时情况&#xff1a; 请求发送超时&#xff0c;下游服务并没有接收到请求请求处理超时&…

关于我

1、百度集团攻防蓝军、深信服深蓝攻防实验室、新华三攻防实验室。多次国家级、省级、地市级、行业级护网攻击队前三名 2、漏洞盒子总榜前五十名&#xff0c;获得10个月的月榜前十、赛季总榜前五十 3、补天总榜前五十名、月榜补天战神、补天双旦活动、五一活动获得奖励 4、去…

LocalDateTime的序列化和反序列化

背景 最近定位出一个LocalDateTime序列化相关的问题&#xff0c;简单记录一下。本文重点介绍Jackson对LocalDateTime的序列化和反序列化&#xff0c;并结合Spring应用场景进行介绍。 1.LocalDateTime与字符串转换 可以通过DateTimeFormatter实现LocalDateTime与字符串的相互…

主动学习实现领域自适应语义分割

领域自适应语义分割是指在一个领域上训练的语义分割模型能够有效地应用到另一个不同但相关的领域。主动学习是通过智能选择最有价值的数据进行标注&#xff0c;以提高模型的性能和效率。将这两者结合起来&#xff0c;可以实现高效的领域自适应语义分割。 以下是实现主动学习和…

接口测试学习笔记2

一、复习和扩展&#xff1a; 1、金字塔测试模型 UI测试 -- 黑盒 Service 服务层--函数之间的调用 灰盒 接口测试 Unit单元层--白盒测试 趋势&#xff1a;逐步向下发展 测试优先、测试驱动 -- 先考虑怎么测&#xff0c;再考虑怎么开发 满足软件测试的可控范围 2、…

vm母盘配置实验环境

目录 设备:RHEL 9 一.配置本地软件仓库 二.配置网络设备脚本 三.设定网卡规范名称、关闭selinux、关闭并锁住防火墙 四.删除eth0连接并清除历史命令 设备&#xff1a;RHEL 7 一.设定网卡规范名称、关闭selinux、关闭并锁住防火墙 二.配置本地软件仓库 三.配置网络设备…