『运维备忘录』之 Zip 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 Zip 命令

一、简介

Zip 命令用于在 Linux 系统上创建、压缩和解压缩 zip 文件,与 tar 命令类似。同理,Unzip 是一个用于解压缩 zip 文件的工具。

二、基本用法

$ zip [-选项] [-b 路径] [-t 日期] [-n 后缀名] [压缩文件列表] [-xi 列表]

参数说明:

参数说明
-ffreshen: 只压缩具有变化的文件
-d在压缩文件中删除项目
-r递归进入目录
0仅存储
-1更快压缩
-q安静操作
-c增加注释
-@从标准输入流读取文件列表
-x排除以下文件/目录
-F修复压缩文件(-FF尝试更加努力)
-A调整自解压可执行文件
-T检查压缩文件是否完整
-y将符号链接作为链接存储
-n不压缩以下文件类型
-V保留VMS版本号
-M通过“more”分页器进行数据流输出
-k加密压缩文件项
-u@从标准输入读取参数
-z将zip放入存档模式
-C大小写不敏感匹配文件名
-2**通过第二层压缩
-4**通过第四层压缩
-j**忽略 zipfile 的前缀(解压模式)
-uupdate: 只压缩变化的或新增的文件
-m移动到压缩文件中(删除操作系统文件)
-j不记录目录名
-l将LF转换为CRLF(-ll CRLF转LF)
-9更好压缩
-v显示详细操作/打印版本信息
-z添加压缩文件注释
-o让压缩文件日期与最近更新的文件日期一致
-i仅添加以下文件/目录
-D不添加目录到压缩文件中
-J忽略压缩文件的前缀(解压自解压文件)
-X排除额外的文件属性
-h显示此帮助文件
-w在压缩操作之前提示
-L使一些名称小写
-OCHARSET指定字符编码以供压缩条目使用
-s使用正则表达式选择要包括的条目
-vV仅包括与VMS版本字符串匹配的条目
-Zzipinfo 模式
-3**通过第三层压缩
-d**仅提取这些文件(仅限zipinfo模式)
-j**忽略 zipfile 的前缀(解压模式)

说明:** 这些级别是数据压缩算法,具有 gzip(1) 兼容的级别 1-9, 以及特殊的 0 表示无压缩和 -1 (最快)表示压缩数据以"存储"方法机会存储在ZIP文件中 的未压缩数据。 

2.1. 语法形式展示

基本语法:

zip [选项] 文件名.zip [文件列表]

压缩目录:

zip -r [选项] 文件名.zip 目录名称

将文件添加到现有压缩文件:

zip -u [选项] 文件名.zip 文件名称

解压缩文件:

unzip [选项] 文件名.zip

将 zip 文件解压缩到指定目录:

unzip [选项] 文件名.zip -d 目录名称

列出 zip 文件中的内容:

unzip -l 文件名.zip

将 zip 文件加密:

zip -e [选项] 文件名.zip 文件名称

 将 zip 文件解密:

unzip [选项] 文件名.zip(然后输入密码解密)

 将 zip 文件中的文件转成 UTF-8 编码:

zip -O utf-8 -r [选项] 文件名.zip 文件列表

三、Zip 压缩实例

3.1. 创建新的 zip 压缩文件

$ zip filename.zip file1 file2 folder1

3.2. 将大文件分割成多个zip文件

$ zip -s 100M -r filename.zip largefile

3.3. 更新zip文件中的文件

$ zip -u filename.zip fileeg

3.4. 将文件添加到现有的 zip 压缩文件

$ zip -r filename.zip file3 folder2

3.5. 将zip文件加密

$ zip -e secure.zip file_secure

3.6. 将zip文件中的文件转成UTF-8编码

$ zip -O utf-8 -r utf8zip.zip utf8file

3.7. 压缩文件排除文件

$ zip -r basic.zip example/basic/ -x "example/basic/node_modules/*" -x "example/basic/build/*" -x "example/basic/coverage/*"
# 压缩 example/basic/ 目录内容到 basic.zip 压缩包中 -x 指定排除目录,注意没有双引号将不起作用

四、Unzip 解压实例

4.1. 解压缩zip文件

$ unzip filename.zip

4.2. 将zip文件解密

$ unzip secure.zip(然后输入密码解密)

4.3. 列出zip文件中的内容

$ unzip -l filename.zip

4.4. 将zip文件解压缩到指定目录

$ unzip filename.zip -d folder

参考资料:https://infozip.sourceforge.net/Info-ZIP.html

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

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

相关文章

07MARL经典算法 Policy-Based Learning

文章目录 前言一、基于策略方法的提出二、普遍的梯度上升的更新方法 前言 MARL基础算法第三类基于策略的学习 一、基于策略方法的提出 目前为止方法总体就是评估价值函数,基于价值函数更新策略,这些方法都具有一定的限制,如JAL-SG不能有效收…

JVM对象创建与内存分配机制深度剖析

对象的创建 对象创建的主要流程: 1.类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类…

KMS知识管理系统:一文扫盲,体验为王,落地为皇

知识管理系统是学习型组织的必备,重要性不言而喻,但是往往在执行中不能落地,本位尝试做些KMS的扫盲。 一、KMS是什么 知识管理系统(英语:Knowledge management system)是一种用于管理和共享企业内部知识的…

磁盘database数据恢复: ddrescue,dd和Android 设备的数据拷贝

ddrescue和dd 区别: GNU ddrescue 不是 dd 的衍生物,也与 dd 没有任何关系 除了两者都可用于将数据从一台设备复制到另一台设备。 关键的区别在于 ddrescue 使用复杂的算法来复制 来自故障驱动器的数据,尽可能少地造成额外的损坏。ddrescue…

Java中的Queue队列的基本讲解

目录 一、创建队列 二、Queue的一些常用方法 对于队列的概念我就不多说了吧,先进先出,比如1,2,3进入队列,出队列也是1,2,3。这里我主要说的是在Java中如何创建和使用队列。 一、创建队列 队列的创建,也可以说是队列的实例化。 Q…

MySQL学习Day15——MySQL安装与使用

一、Linux下的MySQL的安装与使用: 卸载MySQL: 1.关闭当前MySQL服务:systemctl stop mysql.service 2.查看当前mysql安装状况:rpm -qa | grep -i mysql 3.卸载上述命令查询出的已安装的程序:yum remove mysql-xxx mysql-xxx mysql-xxxx 4.删除mysql相关文件: (1)查找相关文…

NSSCTF Round#18 RE WP 完整复现

1. GenshinWishSimulator 恶搞原神抽卡模拟器 看到软件的界面,大致有三种思路: 修改石头数量一直抽,如果概率正常肯定能抽到(但是估计设置的概率是0)在源码里找flag的数据把抽卡概率改成100%直接抽出来 Unity逆向&am…

React 的调度系统 Scheduler

原文地址1 原文地址2 其中startTime是任务开始的时间,默认是-1,任务开始时将任务开始时间赋值给了startTime, 这里意思是判断这个任务执行时间是否超过5ms(写死的)。若超过,则要交出。

软件风险分类整理

软件项目风险分类整理 1.需求分析 2.软件设计 3.编码和单元测试 4.集成和测试 5.验收和维护 6.团队管理 7.成本管理 8.组织管理

掌握Go并发:Go语言并发编程深度解析

🏷️个人主页:鼠鼠我捏,要死了捏的主页 🏷️系列专栏:Golang全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&…

问题:内存时序参数 CASLatency 是() #学习方法#微信#微信

问题:内存时序参数 CASLatency 是() A.行地址控制器延迟时间 B.列地址至行地址延迟时间 C.列地址控制器预充电时间 D.列动态时间 参考答案如图所示

vivim复习

vi/vim常用命令 vi&vim常用命令 set nu 显示行号 gg 跳转到文件开头 / 向后搜索 ? 向前搜索 n 查找下一处N 查找上一处 | 光标所在行行首L 屏幕所显示的底行{ 段首} 段尾- 前一行行首 后一行行首 ( 句首 ) 下一句首 $ 行末 M 屏…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第三天-ARM Linux ADC和触摸屏开发 (物联技术666)

链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码:1688 教学内容: 1、ADC S3C2440的A/D转换器包含一个8通道的模拟输入转换器,可以将模拟输入信号转换成10位数字编码。 在A/D转换时钟频率为2.5MHz时&…

第六篇【传奇开心果系列】Python微项目技术点案例示例:庖丁解牛tkinter.ttk库gui界面编程

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录前言一、主窗口和子窗口创建和切换,以员工信息管理系统示例代码二、主窗口添加有菜单项图标的菜单栏、工具栏和右键菜单示例代码三、使用sqlite3数据库增删改查管理员工信息示例代码四、在主…

公需课考试怎么搜题找答案? #学习方法#学习方法

这些软件以其强大的搜索引擎和智能化的算法,为广大大学生提供了便捷、高效的解题方式。下面,让我们一起来了解几款备受大学生欢迎的搜题软件吧! 1.粉鹿搜题 这是一个公众号 在线搜题刷题平台,支持语言、文字、拍照多种搜索方式…

Elasticsearch:特定领域的生成式 AI - 预训练、微调和 RAG

作者:来自 Elastic Steve Dodson 有多种策略可以将特定领域的知识添加到大型语言模型 (LLM) 中,并且作为积极研究领域的一部分,正在研究更多方法。 对特定领域数据集进行预训练和微调等方法使 LLMs 能够推理并生成特定领域语言。 然而&#…

Java迭代器详解,看这一篇就够了

文章目录 🚩Java 迭代器详解 📚迭代器的定义 📒认识Iterator ✏️类结构图 ✒️Iterable接口 🖍️Iterator接口 📃Iterator接口的方法 📙迭代器的使用 🏷️使用迭代器遍历集合 🔖Ite…

B3657 [语言月赛202209] 公园门票

题目描述 小 A 一家人一起来逛公园,门票价目表如下: 小 A 家里共有 x 个成人,y 个儿童,请问至少需要花费多少钱购买门票。 输入格式 共一行,包含两个数字 x 和 y,表示小 A 家里共有 x 名成人&#xff0c…

元宇宙专题:元宇宙概念娱乐应用场景案例研究报告 - 体验驱动篇

今天分享的是元宇宙系列深度研究报告:《元宇宙专题:元宇宙概念娱乐应用场景案例研究报告 - 体验驱动篇》。 (报告出品方:艾瑞咨询) 报告共计:51页 避免刻舟求剑地探索元宇宙概念产品 对于任何一个宏大而…

【vscode】在vscode中如何导入自定义包

只需要额外添加这两条语句即可: import os,sys sys.path.append("../..") 需要注意的是,ipynb 文件打开的工作目录是文件本身的路径,而 py 文件打开的工作路径是 vscode 打开的路径。 相比较而言 pycharm 中创建好项目之后并不…