Linux基础命令---zip
zip
zip是一种最通用的文件压缩方式,使用于unix、msdos、windows、OS等系统。如果在编译zip时包含bzip 2库,zip现在也支持bzip 2压缩。当将大于4GB的文件添加到存档中时,zip会自动使用Zip 64扩展名,包含Zip 64条目的归档将被更新(如果结果的归档仍然需要Zip 64),归档的大小将超过4GB,或者当归档中的条目数超过64K时。Zip 64也用于从标准输入中传输的档案,因为事先不知道这些档案的大小,但是选项fz可以用来强制zip创建与PKZIP 2兼容的档案(只要不需要Zip 64扩展)。必须使用PKZIP4.5兼容解压缩,例如解压缩6.0或更高版本,才能使用Zip 64扩展名提取文件。
zip程序将一个或多个压缩文件与有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起放入一个压缩存档中。可以使用一个命令将整个目录结构打包到zip存档中。对于文本文件来说,压缩比为2:1和3:1是常见的。zip只有一种压缩方法(通缩),并且可以在不压缩的情况下存储文件。(如果添加了bzip 2支持,zip也可以使用bzip 2压缩,但这些条目需要一个合理的现代解压缩来解压缩。当选择bzip 2压缩时,它将通货紧缩替换为默认方法。)zip会自动为每个要压缩的文件选择更好的两个文件(通缩或存储,如果选择bzip2,则选择bzip2或Store)。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
zip [选项] zipfile list
2、选项列表
|
选项 |
说明 |
|
-? | -h | --help |
帮助信息 |
|
-h2 | --more-help |
显示扩展帮助,包括更多关于命令行格式、模式匹配和更模糊的选项。 |
|
-V | --version |
显示命令版本信息 |
|
-a | --ascii |
将系统使用的EBCDIC文件转换为ascii |
|
-A | --adjust-sfx |
调整自解压可执行档案。自解压缩的可执行存档是通过将SFX存根放在现有存档的前面创建的。-A选项告诉zip调整存储在归档中的条目偏移量,以考虑到这些“序言”数据。 |
|
-b path | --temp-path path |
为临时zip归档使用指定的路径 |
|
-B | --binary |
使用二进制格式,默认是文本格式 |
|
-c | --entry-comments |
给被压缩的文件加上注释信息 |
|
-d | --delete |
将指定的文件从压缩文件中删除 |
|
-db | --display-bytes |
显示正在运行的字节计数,显示压缩的字节和要运行的字节。 |
|
-dc | --display-counts |
显示已压缩的条目的运行计数和要运行的条目 |
|
-dd | --display-dots |
在每个条目被拉链时显示点(除了在具有自己的进度指示器的端口上)。见下面的设置点大小-DS。默认情况下,每处理10 MB的输入文件就有一个点。-v选项还显示点(以前的速率比这个高得多,但现在-v也默认为10 MB),这个速率也是由-ds控制的。 |
|
-dg | --display-globaldots |
显示存档的进度点,而不是为每个文件显示进度点。 |
|
-ds size | --dot-size size |
设置为显示的每个点处理的输入文件的数量。尺寸为nm格式,其中n是一个数字,m是一个乘数。目前m可以是k(KB),m(MB),g(GB),或者t(TB),所以如果n是100,m是k,那么大小将是100 k,即100 KB。默认值为10 MB。 |
|
-du | --display-usize |
显示每个条目的未压缩大小。 |
|
-dv | --display-volume |
显示正在读取的每个条目的卷(磁盘)号,如果读取现有存档,并将其写入 |
|
-D | --no-dir-entries |
不要在zip存档中为目录创建条目。 |
|
-DF | --difference-archive |
创建一个包含自原始存档创建以来所有新的和已更改的文件的归档文件。 |
|
-e | --encrypt |
压缩文件加密 |
|
-f | --freshen |
替代压缩文件中的旧文件,如果文件不存在,那么不会追加文件 |
|
-F | --fix | -FF | --fixfix |
尝试修复已经损坏的压缩文件 |
|
-FI | --fifo |
通常zip会跳过读取遇到的任何FIFO(命名管道),因为如果FIFO没有被喂入,zip就会挂起。 |
|
-FS | --filesync |
将存档的内容与操作系统上的文件同步 |
|
-g | --grow |
将文件追加到已经存在的压缩文件结尾 |
|
-i | --include |
仅包含指定的文件 |
|
-j | --junk-paths |
压缩的时候,忽略文件名中的路径,只保存文件名和内容 |
|
-J | --junk-sfx |
从存档中删除任何预置的数据 |
|
-i | --include |
只包含指定的文件 |
|
-la | --log-append |
附加到现有日志文件。默认值是覆盖 |
|
-lf | --logfile-path |
在给定路径上打开日志文件。默认情况下,该位置的任何现有文件都会被覆盖 |
|
-li | --log-info |
在日志中包含信息消息,例如正在压缩的文件名。默认情况下,只包含命令行、任何警告和错误以及最终状态。 |
|
-L | --license |
显示zip的许可证 |
|
-m | --move |
将指定的文件移动到压缩文件 |
|
-MM | --must-match |
所有输入模式必须至少匹配一个文件,所有找到的输入文件必须是可读的。 |
|
-n | --suffixes |
不要尝试压缩以给定后缀命名的文件。 |
|
-nw | --no-wild |
不要执行内部通配符处理。 |
|
-o | --latest-time |
将zip归档的“最后修改”时间设置为在zip归档中的条目中找到的最新(最老的)“最后修改”时间。 |
|
-O | --output-file |
像往常一样处理归档更改,但不是更新现有存档,而是将新存档输出到输出文件。 |
|
-p | --path |
将相对文件路径作为存储在存档中的文件名称的一部分 |
|
-P | --password |
加密 |
|
-q | --quite |
静默模式,不显示执行过程 |
|
-r | --recurse-paths |
压缩的时候,递归处理目录 |
|
-R | --recurse-patterns |
递归遍历目录结构,从当前目录开始。 |
|
-s | --split-size |
启用创建拆分存档并设置拆分大小 |
|
-sb | --split-bell |
如果拆分并使用拆分暂停模式,则在zip对每个拆分目标暂停时按下铃声。 |
|
-sc | --show-command |
显示已处理并退出的启动zip的命令行 |
|
-sf | --show-files |
显示要操作的文件,然后退出。 |
|
-so | --show-options |
显示在当前系统上编译的zip支持的所有可用选项 |
|
-sp | --split-pause |
如果使用-s启用拆分,则启用拆分暂停模式 |
|
-su | --show-unicode |
和-sf一样,如果存在,还会显示路径的unicode版本 |
|
-sU | --show-just-unicode |
和-sf一样,仅显示路径的Unicode版本(如果存在),否则显示路径的标准版本。 |
|
-sv | --split-verbose |
在拆分时启用各种详细的消息,显示拆分是如何进行的。 |
|
-t mmddyyyy | --from-date mmddyyyy |
不要对在指定日期之前修改的文件进行操作,其中mm是月份(00-12),dd是月份的日期(01-31),yyyy是年。 |
|
-T | --test |
测试新zip文件的完整性。如果检查失败,旧的zip文件将保持不变,并且(使用-m选项)不会删除输入文件。 |
|
-TT | --unzip-command |
当使用-T选项时,使用命令cmd而不是“unzip-tqq”来测试存档。 |
|
-U | --copy-entries |
将条目从一个存档复制到另一个存档。 |
|
-u | --update |
更新文件,不存在的时候,直接追加。仅当zip存档中的现有条目比zip存档中的版本修改得更近时,才替换(更新)它。 |
|
-UN | --unicode |
确定zip应该如何处理unicode文件名 |
|
-x | --exclude |
压缩时不包含指定的文件 |
|
-y |
压缩时直接保存符号链接 |
|
-v | --verbose |
显示执行过程 |
|
-ws | --wild-stop-dirs |
通配符仅在目录级别匹配。 |
|
-# |
使用指定的数字#调整压缩速度,其中-0表示没有压缩(存储所有文件),-1表示最快的压缩速度(压缩较少),-9表示最慢的压缩速度(最佳压缩,忽略后缀列表)。默认的压缩级别是-6 |
|
-@ | --names-stdin |
从标准输入中获取输入文件列表。每行只有一个文件名。 |
4、模式匹配
?,匹配任意单个字符
*,匹配任意多个字符
[]匹配括号内所示范围内的任何字符(例如:[a-f],[0-9])。
5、退出码
0,正常,没有错误。
2,压缩文件的意外结束。
3,检测到zip文件格式中的通用错误。
4,在程序初始化期间,zip无法为一个或多个缓冲区分配内存。
5,检测到zip文件格式出现严重错误。
6,条目太大,无法处理(例如,不使用Zip 64或试图读取现有存档太大时,输入文件大于2GB)或条目太大,不能用zip拆分。
7,无效注释格式。
8,zip-T失败或内存不足。
9,用户使用Control-C(或类似的)过早中止zip。
10,使用临时文件时,zip遇到了一个错误。
11,读取或查找错误。
12,zip无事可做。
13,丢失或空压缩文件。
14,写入文件时出错。
15,zip无法创建要写入的文件。
16,坏命令行参数。
18,zip无法打开要读取的指定文件。
19,在此系统中不支持的选项编译了zip。
6、例子代码
|
|
7、实例
1)压缩文件
|
|
2)给压缩文件添加、删除内容
|
|
3)压缩时设置密码
|
|
Linux基础命令---zip的更多相关文章
- 常用的linux基础命令
常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...
- [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
- Linux基础命令小结(超全!!)
Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...
- Linux基础命令整合
linux基础命令整理 1.系统相关命令 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minu ...
- 第四节,Linux基础命令
第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令 ...
- 【Python之路】第一篇--Linux基础命令
pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 . 表示当前目录 .. 表示上级目录 / 表示根目录 ls ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- 2.Linux基础命令
linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...
- linux基础命令一
linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date [options...] [+FORMAT] FORMAT:为显示日期的格 ...
随机推荐
- node中非常重要的process对象,Child Process模块
node中非常重要的process对象,Child Process模块Child Process模块http://javascript.ruanyifeng.com/nodejs/child-proc ...
- pandas常用
#python中的pandas库主要有DataFrame和Series类(面向对象的的语言更愿意叫类) DataFrame也就是#数据框(主要是借鉴R里面的data.frame),Series也就是序 ...
- 7.24 IO多路复用和协程代码笔记
1. 复习 # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/23 11:49 # !@Author TrueNew ...
- JQuery EasyUI 日期控件 怎样做到只显示年月,而不显示日
标题问题的答案在OSChina中 http://www.oschina.net/question/2282354_224401?fromerr=lHJTcN89 我还是把这个记录下来 ======== ...
- anaconda资源链接
清华源: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ anaconda所有版本大全: http://www.bubuko.com/in ...
- Ubuntu 下 kdevelop下 怎么向主函数传递参数
1.打开工程 2.点击窗口上的运行”--“配置启动器” 3.左栏选择要传递参数的工程名,在参数一栏中,输入参数“ubuntu.png”,再输入“工作目录”.点击OK,运行就可以了.
- 移动IP 它最初设想每个人都在编写应用层(7)API而不是传输层(4)API 对于QUIC,连接的标识符不是“套接字”(源/目标端口/地址协议组合)的传统概念,而是分配给连接的64位标识符
小结: 1. 因为您对OSI模型的教育中缺少的一点是,它最初设想每个人都在编写应用层(7)API而不是传输层(4)API.应该有像应用程序服务元素之类的 东西,它们可以以标准方式处理文件传输和消息传递 ...
- 单机闭环 使用Nginx+Lua开发高性能Web应用
[西域骆驼D1532101213]西域骆驼(VANCAMEL)D1532101213 休闲套脚鞋 卡其43[行情 报价 价格 评测]-京东 http://item.jd.com/1856564.htm ...
- Django实现电影论坛
主要实现功能: 注册,登陆,发帖,评论帖子,xadmin实现后台提供帖子管理,板块管理等等 首页(搜索,筛选) 发布帖子 帖子详情页(显示帖子具体内容,提供评论) 个人信息页面(显示个人信息,修改个人 ...
- 2018/04/07 每日一个Linux命令 之 logrotate
简介 日志的存在一直是 Linux 里面一个比较重要内容. 但是随着服务器运行的时间越来越长,日志越来越大.我见过一个线上项目 TP3.2 log文件有260+G的...... logrotate 也 ...