linux 命令:zip 详解

2023-11-18

zip 命令的功能是打包和压缩文件。

用法

        zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

        如果 zipfile 未提供,压缩标准输入并把结果写到标准输出。

选项

        -A         调整自解压程序。

        -c          添加单行注释。

        -d         从 zipfile 中删除条目。

        -db        展示正在执行的字节数和尚未执行(压缩)的字节数。

        -dc        展示正在执行的文件数和尚未执行(压缩)的文件数。

        -dd        每10MB展示为一个点。

        -dg        将整个归档用点代表,而不是为每个文件。

        -ds        每个点都代表一个 siz ,其中 siz 是以 nm 为单位作为分割(0 代表没有点)。

        -D         不添加目录条目。

        -DF      也写作 --dif。只包括有改变的文件或比输入归档较新的文件。

        -e         设置解压权限,使用标准(弱)PKZip 2.0 编码,提示输入密码。

        -f          只更新有改变的文件。

        -F        修复 zipfile(-FF 更努力地修复)。拷贝潜在损坏的归档中的文件到新归档中。                      -F 尝试正常读取归档并仅复制完整条目,而 -FF 尝试挽救可能导致不完整条目                      的内容。必须使用 --out 指定输出的归档。使用 -v 查看详细信息。

        -FS      如果日期或大小改变了就更新,系统不存在的文件就删除。

        -i          压缩时只包括的文件。

        -ic        大小写不敏感。

        -j          不压缩目录,只压缩文件。

        -J         删除 zipfile 中的前缀(unzipsfx)。

        -l          将 LF 转换为 CR LF (-ll 是将 CR LF 转换为 LF)。

        -lf path  打开 path 的文件作为日志文件(覆盖已存在的文件)。

        -la         追加到已存在的日志文件。

        -li          包括 info 信息(默认只有警告和错误信息)。

        -m         将文件移动到 zipfile 中,并从系统中删除源文件。

        -n          不压缩具有指定后缀的文件。

        -o          以压缩文件列表中最新的文件的更新时间为压缩文件的更新时间。

        --out     输出到新的归档。如果输入是拆分的,输出将会默认为相同的拆分大小。使用                         -s=0 或 -s- 来关闭拆分。如果覆盖旧的拆分归档,但是需要的拆分数量较少,                       旧的拆分归档没有被覆盖的就保持原状。

        -P         使用标准编码,设置密码。

        -q         不显示执行过程。

        -r          递归目录。

        -R         递归当前目录中匹配的文件。

        -s ssize 使用大小为 ssize 的拆分文件大小创建拆分存档。

        -sp        在每个拆分操作结束时暂停,来切换磁盘。

        -sb        暂停时响铃。

        -sv        创建拆分时显示详细信息。

        -sf        展示操作的文件后退出(-sf- 日志文件专属)。

        -su        类似 -sf 但是展示转义 UTF-8 Unicode 名称,如果存在。

        -sU        类似 -sf 但是展示转义 UTF-8 Unicode 名称。

        -t          包括在指定日期当天货之后有修改的文件。

        -tt         包括在指定日期之前有修改的文件。日期格式(mmddyyyy 或 yyyy-mm-dd)。

        -T         测试 zipfile 的完整性。

        -TT cmd 使用命令 cmd 测试归档。      

        -u         只更新有改变的文件或新文件。

        -U        从 zipfile 中选择文件复制(和 --out 一起使用)。等于 --copy。

        -v         显示详细执行信息。如果只执行 “zip -v”,则展示版本信息。

        -x         压缩时排除文件。

        -X        排除额外的文件属性。

        -y         将软链作为链接保存,而不是作为文件。

        -z         添加 zipfile 的注释。

        -Z         后接压缩方式:store(只保存,等于 -0),deflate(压缩,默认值),如果系统支                         持 bzip2,可以使用 bzip2 方式。

        -0        只保存,不压缩。

        -1~-9   1是更快地压缩,9是更好地压缩,默认值是6。

        -@       从标准输入读取文件名。

通配符

        ?        匹配任意单个字符。

        *         匹配任意个数的字符,包括0(0 到 正无穷)

        [list]    匹配 list 中的字符(正则),可以使用范围表示 [ac-f],排除字符 [!bf]

一般情况下,* 会跨越目录级别,比如 'a*b' 可以匹配 'ac/db'。如果使用 -ws,* 不会跨越,  **会跨越。

使用示例:

1.  递归当前目录并压缩以 .h 为结尾的文件:

        zip zipfile -r . -i "*.h"

2. 压缩 path 到 zipfile,排除 pattern:

        zip -x pattern pattern @ zipfile path path ...

3. 归档更新:

        zip zipfile -FS -r dir

4. 从 inarchive 复制 pattern 文件到 outarchive:

        zip inarchive --copy pattern pattern ... --out outarchive

5. 从 old_archive 复制以 .c 结尾的文件(排除foo.c)到 new_archive:

        zip old_archive --copy "*.c" --out new_archive -x foo.c

6. 修复 bad.zip 为 fixed.zip:

        zip -F bad.zip --out fixed.zip

        zip bad.zip -FF -v --out fixed.zip

7. 递归当前目录,如果有 foofull 中没有的文件或有改变的文件,就压缩到 foonew 中:

        zip -r foofull . -DF --out foonew

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux 命令:zip 详解 的相关文章

  • 归档文件系统或格式

    我正在寻找一种文件类型来存储已退役系统的档案 目前 我们主要使用 tar gz 但从 200GB tar gz 存档中查找并提取几个文件是很麻烦的 因为 tar gz 不支持任何类型的随机访问读取规定 在你明白之前 使用 FUSE 安装 t
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两

随机推荐

  • C++day2作业(2023.8.22)

    1 定义一个学生的结构体 包含学生的姓名 年龄 成绩 性别 学生的成绩 姓名 定义为私有权限 定义一个学生类型的结构体变量 设置公有函数用于给学生的成绩和名字进行赋值 结构体中的函数 结构体中声明 结构体外定义 include
  • UVa 12504 Updating a Dictionary

    Problem uva onlinejudge org index php option com onlinejudge Itemid 8 page show problem problem 3948 题意 貌似是模拟 Source Cod
  • 解读云原生的2021:抢占技术C位,迎来落地大爆发

    来源 InfoQ 作者 褚杏娟 2021年 云原生迎来黄金时代 本文是 2021 InfoQ 年度技术盘点与展望 系列文章 重点聚焦云原生领域在 2021 年的重要进展 动态 希望能帮助你准确把握 2021 年云原生领域的核心发展脉络 在行
  • r语言写九九乘法表并保存为txt文件

    r语言写九九乘法表并保存为txt文件 代码 for i in 1 9 for j in 1 i cat j x i i j t file 九九乘法表 txt append TRUE cat n file 九九乘法表 txt append T
  • Nacos-Server用户权限控制无效解决方案

    场景 nacos server默认账户是 nacos nacos 此用户权限太大 有时候为了安全起见会建立多个用户 给予不同的角色权限 但建立用户后发现权限不起作用 分析 nacos默认不开启权限控制 如果想使用权限控制功能 需要在 con
  • etp服务器怎么连接共享文件夹,Everything共享文件操作方法

    以前我们要想共享一些文件给朋友 最常见的方法就是通过网盘来完成 但是这样的共享并不是朋友们都喜欢的 其实利用著名的搜索工具Everything 我们就可以在电脑中划出一部分区域 从而快速搭建一个用于分享的服务器平台 这样我们可以将自己发现的
  • visual studio code怎么用root/sudo调试远程程序?

    vs code是款微软出品不错的编辑器 可以远程编辑 处理服务器上的文件 支持c php python java等各种语言 在调试c 程序 的时候遇到了一个问题 编辑代码是用的普通用户 但调试的时候需要用root启动 如果启动调试出现要求密
  • Python 安装模块后找不到模块以及Python代码自动补全设置的一个思路

    起因是在做一些小玩意时安装了一些模块 但是运行时却找不到模块 于是多次重装VScode里边的Python部分 导致VScode自动补全也被玩掉了 查了很久的才终于搞回来 先把找到的一个有用链接放这 免得找不到了如何使用Visual Stud
  • 使用labelme打标签,详细教程

    做图像语义分割 打标签时需要用到labelme这个工具 我总结了它的详细使用教程 目录 一 安装labelme工具 二 文件位置关系 三 labelme工具 四 labelme工具的快捷键 五 代码 将标签文件转为统一固定格式 六 总结 一
  • Jdk8 之 Stream流详细用法(一)

    本篇文章参考云深i不知处的文章 原文链接 https blog csdn net mu wind article details 109516995 一 概述 Stream 是 Java8 中处理集合的关键抽象概念 它可以指定你希望对集合进
  • 21.5 CSS 网页布局方式

    网页布局方式 网页布局方式 是指浏览器对网页中的元素进行排版的方法 常见的网页布局方式包括 1 标准流 文档流 普通流 布局 这是浏览器默认的排版方式 元素按照其在文档中的位置依次排列 可以使用CSS的盒模型属性进行水平和垂直布局 2 浮动
  • ipad投屏软件_无线投屏操作指南 轻松分享

    下发福利 智能会议的无线投屏 支持Windows Mac OS ios Android 一键投屏 随时批注 能够满足一分四屏 灵活进行大小屏互控 帮助企业突破 线 制 以下内容为无线投屏的操作指南 01 Windows 与 Mac OS系统
  • OOMMF手册整理

    如果您得系统Tcl Tk安装就是非线程得 那么您可以创建一个非线程版本得OOMMF 否则您可以在您得主目录或 usr local下创建一个额外得 线程化得Tcl Tk安装 请注意 如果您得系统上安装了多个Tcl Tk安装 则无论何时您构建或
  • Springboot未注入的类使用Spring容器的实体类,实体类又需要插入yml的数据,实体类属于Spring容器。

    Springboot中Bean的注入 我们都知道 Springboot可以使用方法级别注解 Bean 和类级别注解 Controller Component Service等 加包扫描的方式注入Beans 实现交给Spring容器管理 这样
  • R各个包里面的数据集列表

    Package Item Title csv doc datasets AirPassengers Monthly Airline Passenger Numbers 1949 1960 CSV DOC datasets BJsales S
  • STM32串口中断接收方式详细比较

    本例程通过PC机的串口调试助手将数据发送至STM32 接收数据后将所接收的数据又发送至PC机 具体下面详谈 实例一 void USART1 IRQHandler u8 GetData u8 BackData if USART GetITSt
  • stata--异方差检验

    异方差检验有两种方法 1 残差图 2 white检验 1 残差图 一般不用这个 这个只是粗略 代码 reg y fdi rvfplot yline 0 rvpplot fdi yline 0 1 对y和fdi回归 2 画出残差与拟合值 y
  • Doc2Vec的简介及应用(gensim)

    作者 Gidi Shperber 在本文中 你将学习什么是doc2vec 它是如何构建的 它与word2vec有什么关系 你能用它做什么 并且没有复杂的数学公式 介绍 文本文档的量化表示在机器学习中是一项具有挑战性的任务 很多应用都需要将文
  • ajax实现文件上传

    没有使用插件 一 单文件上传
  • linux 命令:zip 详解

    zip 命令的功能是打包和压缩文件 用法 zip options b path t mmddyyyy n suffixes zipfile list xi list 如果 zipfile 未提供 压缩标准输入并把结果写到标准输出 选项 A