Linux命令 - zip命令

2023-11-18

Linux命令 - zip命令

  Linux中 zip 命令是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。

1.语法:

zip [参数] [文件或目录]

2.功能:

  可以压缩文件且保留源文件。

3.参数:
-A   调整可执行的自动解压缩文件。
-b<工作目录>   指定暂时存放文件的目录。
-c   替每个被压缩的文件加上注释。
-d   从压缩文件内删除指定的文件。
-D   压缩文件内不建立目录名称。
-f   此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F   尝试修复已损坏的压缩文件。
-g   将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h   在线帮助。
-i<范本样式>   只压缩符合条件的文件。
-j   只保存文件名称及其内容,而不存放任何目录名称。
-J   删除压缩文件前面不必要的数据。
-k   使用MS-DOS兼容格式的文件名称。
-l   压缩文件时,把LF字符置换成LF+CR字符。
-ll   压缩文件时,把LF+CR字符置换成LF字符。
-L   显示版权信息。
-m   将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串>   不压缩具有特定字尾字符串的文件。
-o   以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q   不显示指令执行过程。
-r   递归处理,将指定目录下的所有文件和子目录一并处理。
-S   包含系统和隐藏文件。
-t<日期时间>   把压缩文件的日期设成指定的日期。
-T   检查备份文件内的每个文件是否正确无误。
-u   更换较新的文件到压缩文件内。
-v   显示指令执行过程或显示版本信息。
-V   保存VMS操作系统的文件属性。
-w   在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式>   压缩时排除符合条件的文件。
-X   不保存额外的文件属性。
-y   直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z   替压缩文件加上注释。
-$   保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率>   压缩效率是一个介于1-9的数值。
4.常用范例:

例一:将test目录下所有文件和文件夹打包为当前目录下的 test.zip

命令:zip -q -r test.zip /usr/games/test

  生成的压缩文件是在当前打包的目录下。

[root@localhost ~]# ll
总用量 11
drwxr-xr-x. 2 root root    6 5月  12 14:29 公共
drwxr-xr-x. 2 root root    6 5月  12 14:29 模板
drwxr-xr-x. 2 root root    6 5月  12 14:29 视频
drwxr-xr-x. 2 root root    6 5月  12 14:29 图片
drwxr-xr-x. 2 root root    6 5月  12 14:29 文档
drwxr-xr-x. 2 root root    6 5月  12 14:29 下载
drwxr-xr-x. 2 root root    6 5月  12 14:29 音乐
drwxr-xr-x. 2 root root    6 5月  12 14:29 桌面
-rw-------. 1 root root 1247 5月  12 14:24 anaconda-ks.cfg
-rw-r--r--. 1 root root 1526 5月  12 14:29 initial-setup-ks.cfg
[root@localhost ~]# zip -q -r test.zip /usr/games/test
[root@localhost ~]# ll
总用量 12
drwxr-xr-x. 2 root root    6 5月  12 14:29 公共
drwxr-xr-x. 2 root root    6 5月  12 14:29 模板
drwxr-xr-x. 2 root root    6 5月  12 14:29 视频
drwxr-xr-x. 2 root root    6 5月  12 14:29 图片
drwxr-xr-x. 2 root root    6 5月  12 14:29 文档
drwxr-xr-x. 2 root root    6 5月  12 14:29 下载
drwxr-xr-x. 2 root root    6 5月  12 14:29 音乐
drwxr-xr-x. 2 root root    6 5月  12 14:29 桌面
-rw-------. 1 root root 1247 5月  12 14:24 anaconda-ks.cfg
-rw-r--r--. 1 root root 1526 5月  12 14:29 initial-setup-ks.cfg
-rw-r--r--. 1 root root 1670 5月  25 16:25 test.zip

zip -q -r test.zip *

[root@localhost test]# ll
总用量 24
-rw-r--r--. 1 root root  96 5月  25 15:10 color.sh
-rwxr--r--. 1 root root  96 5月  18 10:15 lncolor
---xr--r--. 1 root root  13 5月  25 10:58 log1.txt
-rwxrw-r-x. 1 root root 592 5月  14 17:00 log2.txt
-rwxr-x--x. 1 root root 655 5月  14 17:06 log3.txt
-rwxr--r--. 1 root root  52 5月  25 10:58 log.txt
[root@localhost test]# zip -q -r test.zip *
[root@localhost test]# ll
总用量 28
-rw-r--r--. 1 root root   96 5月  25 15:10 color.sh
-rwxr--r--. 1 root root   96 5月  18 10:15 lncolor
---xr--r--. 1 root root   13 5月  25 10:58 log1.txt
-rwxrw-r-x. 1 root root  592 5月  14 17:00 log2.txt
-rwxr-x--x. 1 root root  655 5月  14 17:06 log3.txt
-rwxr--r--. 1 root root   52 5月  25 10:58 log.txt
-rw-r--r--. 1 root root 1332 5月  25 16:29 test.zip

例二:从压缩文件 test.zip 中删除文件log.txt

命令:zip -dv test.zip log.txt

[root@localhost test]# zip -dv test.zip log.txt
1>1: updating: log.txt (deflated 29%)

例三:把/games目录下面的test目录压缩为test1.zip

命令: zip -r test1.zip test

[root@localhost games]# zip -r test1.zip test
  adding: test/ (stored 0%)
  adding: test/color.sh (deflated 47%)
  adding: test/lncolor (deflated 47%)
  adding: test/log1.txt (stored 0%)
  adding: test/log2.txt (deflated 73%)
  adding: test/log3.txt (deflated 79%)
  adding: test/log.txt (deflated 29%)
  adding: test/test.zip (stored 0%)
[root@localhost games]# ll
总用量 8
-rw-r--r--. 1 root root   96 5月  25 15:16 color.sh
drwxr-xr-x. 2 root root  116 5月  25 16:33 test
-rw-r--r--. 1 root root 3016 5月  25 16:36 test1.zip

例四:把/games目录下面的test文件夹和color.sh压缩成为test2.zip

命令: zip -r test2.zip test color.sh

[root@localhost games]# zip -r test2.zip test color.sh 
  adding: test/ (stored 0%)
  adding: test/color.sh (deflated 47%)
  adding: test/lncolor (deflated 47%)
  adding: test/log1.txt (stored 0%)
  adding: test/log2.txt (deflated 73%)
  adding: test/log3.txt (deflated 79%)
  adding: test/log.txt (deflated 29%)
  adding: test/test.zip (stored 0%)
  adding: color.sh (deflated 47%)
[root@localhost games]# ll
总用量 12
-rw-r--r--. 1 root root   96 5月  25 15:16 color.sh
drwxr-xr-x. 2 root root  116 5月  25 16:33 test
-rw-r--r--. 1 root root 3016 5月  25 16:36 test1.zip
-rw-r--r--. 1 root root 3211 5月  25 16:40 test2.zip

例五:将test目录打包成 test3.zip

命令: zip -r test3.zip ./test

  压缩的是包括test目录及以下的文件和文件夹。

[root@localhost games]# zip -r test3.zip ./test
  adding: test/ (stored 0%)
  adding: test/color.sh (deflated 47%)
  adding: test/lncolor (deflated 47%)
  adding: test/log1.txt (stored 0%)
  adding: test/log2.txt (deflated 73%)
  adding: test/log3.txt (deflated 79%)
  adding: test/log.txt (deflated 29%)
  adding: test/test.zip (stored 0%)
[root@localhost games]# ll
总用量 16
-rw-r--r--. 1 root root   96 5月  25 15:16 color.sh
drwxr-xr-x. 2 root root  116 5月  25 16:33 test
-rw-r--r--. 1 root root 3016 5月  25 16:36 test1.zip
-rw-r--r--. 1 root root 3211 5月  25 16:40 test2.zip
-rw-r--r--. 1 root root 3016 5月  25 16:42 test3.zip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux命令 - zip命令 的相关文章

  • 在 Docker 容器中以主机用户身份运行

    在我的团队中 我们在进行开发时使用 Docker 容器在本地运行我们的网站应用程序 假设我正在开发 Flask 应用程序app py具有依赖关系requirements txt 工作流程大致如下 I am robin and I am in
  • 运行此处编译的 C 程序会导致在另一台服务器上找不到 GLIBC 库错误 - 是我的错还是他们的错?

    此处编译的 C 程序在我们的 Ubuntu 服务器上运行良好 但是当其他人尝试在他们的特定 Linux 服务器上运行它时 他们会收到以下错误 myprog install lib tls libc so 6 version GLIBC 2
  • 在 Linux 控制台中返回一行?

    我知道我可以返回该行并用以下内容覆盖其内容 r 现在我怎样才能进入上一行来改变它呢 或者有没有办法打印到控制台窗口中的特定光标位置 我的目标是使用 PHP 创建一些自刷新的多行控制台应用程序 Use ANSI 转义码 http en wik
  • 可以作为命令行参数传递多少数据?

    在 Linux 下生成进程时可以发送多少字节作为命令行参数 gahooa 推荐了一篇好文章http www in ulm de mascheck various argmax http www in ulm de mascheck vari
  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

    在一台 GNU Linux 机器上 如果想要执行 实时 亚毫秒级时间关键 任务 您几乎总是必须经历漫长 复杂且容易出现问题的内核补丁过程 以提供足够的支持 1 http en wikipedia org wiki RTLinux Backg
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • 在 vimrc 中切换匹配

    我的 vimrc 文件中有以下几行 hi ExtraWhitespace cterm NONE ctermbg green ctermfg green guibg green guifg green match ExtraWhitespac
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap

随机推荐

  • 网页一键生成app软件_工程人必须拥有的4个自动生成软件,操作简单,一键输入直接生成...

    工程人必须拥有的4个自动生成软件 操作简单 一键输入直接生成 还在为写技术交底而头疼吗 还在为经常熬夜而烦恼吗 还在为没有好的模板而郁闷吗 这些都是工程人的通病 作为工程人深有同感 如果有一个能一键操作 就能自动生成技术交底的软件 是不是很
  • 【华为OD机试真题2023B卷 JAVA&JS】宜居星球改造计划

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 宜居星球改造计划 知识点广搜 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 2XXX年 人类通过对火星的大气进行宜居改造分析 使得火星已在理论上具备人类宜居的条件 由于
  • C# 监听http请求

    直接上代码 public partial class FrmHome Form HttpListener verifyHttplisten private object listenLocker new object Thread Thre
  • vscode go mod报错(萌新)

    出现如下报错信息 gopls was not able to find modules in your workspace When outside of GOPATH gopls needs to know which modules y
  • Arduino 运行 Rust

    项目设置 首先 我们将通过运行来创建一个新的 cargo 项目 我们需要为 avr 目标 目标三元组 avr unknown unknown 交叉编译我们的项目 为此 我们需要切换到 nightly 工具链 因为一些依赖包使用不稳定的功能来
  • 浅谈Java平台无关性

    为什么Java要支持平台无关性 众所周知 Java是平台无关的语言 那么Java为什么要支持平台无关性 总结一下 有如下几点 支持多变的网络环境 如今是一个互联网的时代 网络将各种各样的计算机和设备连接起来 比如网络连接了windows的P
  • 仪表放大器 电流的检测

    完美的减法运算放大电路 引入缓冲器 固定增益的双运放仪表放大器 12倍放大 电流的检测 错误接法 正确接法
  • LVS的原理

    一 LVS的介绍 linux virtual server简称LVS Internet的快速增长使多媒体网络服务器面对的访问数量快速增加 服务器需要具备提供大量并发访问服务的能力 因此对于大负载的服务器来讲 CPU I O处理能力很快会成为
  • 最火爆的开源流式系统Storm vs 新星Samza

    分布计算系统框架 按照数据集的特点来说 主要分为data flow和streaming两种 data flow主要是以数据块为数据源来处理数据 代表有 MR Spark等 我称作它们为大数据 而streaming主要是处理单位内得到的数据
  • Python每日一题 - 9 - 暂停5秒输出问题

    前言 本人因喜欢python和c语言等程序设计语言 希望能够在这里和大家共同学习共同进步 因个人喜好喜欢做题 所以想出一个系列专栏关于python的习题专集 希望大家喜欢 希望能在这里分享学习的一些知识碎片 接触时间不长 如果文章有任何错误
  • java中的八种数据类型、变量与常量

    内存空间所占字节数 8位等于1字节 数值型 1 整数类型 byte 1 short 2 int 4 long 8 2 浮点类型 float 4 double 8 字符型 char 2 布尔型 boolean 1或4 取值范围 byte 12
  • vue3.0全局引入sass

    在项目开发过程中 有一些共同的sass样式我想抽出封装到一个文件 利用sass的mixin语法来封装变量 但是在这个过程中一直会报错 先是识别不出来 mixin 和 include 后来是报错sass等一些插件的问题 后来是这样解决的 首先
  • C++ 简介

    C c plus plus 是一种静态类型的 编译式的 通用的 大小写敏感的 不规则的编程语言 支持过程化编程 面向对象编程和泛型编程 C 被认为是一种中级语言 它综合了高级语言和低级语言的特点 C 是由 Bjarne Stroustrup
  • 模仿苹果手机虚拟键的代码分享,有兴趣的可以玩玩。 下面的是链接,复制粘贴到浏览器就能下载...

    http files cnblogs com files godlovexq 模仿苹果虚拟home键的效果有解释的 zip 转载于 https www cnblogs com godlovexq p 5252782 html
  • C语言函数大全-- i 开头的函数

    i 开头的函数 1 imagesize 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 initgraph 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 inport 3 1 函数说明 3 2 演示示例 4 insli
  • 再探ROP(上)

    0x00 前言 毕设和论文要搞吐了 再加上实习工作上的事情 近期又要开始准备HW的事情 只能先更新一部分 0x01 从x86到x64 之前的rop都是32bit的程序 由于这篇文章涉及的方法用于64bit的程序 这里先说一下两者的区别 做一
  • 数值分析(10)-数值微分

    整理一下数值分析的笔记 目录 1 误差 2 多项式插值与样条插值 3 函数逼近 4 数值积分与数值微分 THIS 5 线性方程组的直接解法 6 线性方程组的迭代解法 7 非线性方程求根 8 特征值和特征向量的计算 9 常微分方程初值问题的数
  • Docker - 超轻量中文ocr开源项目 chineseocr_lite 搭建

    Docker 超轻量中文ocr开源项目 chineseocr lite 搭建 一 OCR Docker 部署 二 Flask RESTful API demo chineseocr lite 源码地址 https github com ou
  • Qt/C++使用QUiLoader动态加载ui资源文件

    目录 动态对话框 使用场景 注意事项 动态对话框加载 获取动态对话框的控件对象 与动态对话框建立关联 动态修改ui资源文件效果测试 动态对话框 动态对话框 dynamic dialog 就是在程序运行时使用的从Qt设计师的 ui文件创建而来
  • Linux命令 - zip命令

    Linux命令 zip命令 Linux中 zip 命令是个使用广泛的压缩程序 文件经它压缩后会另外产生具有 zip 扩展名的压缩文件 1 语法 zip 参数 文件或目录 2 功能 可以压缩文件且保留源文件 3 参数 A 调整可执行的自动解压