Linux zip 命令用于压缩文件。
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。
zip 命令语法
zip -r <archive_name.zip> <directory_to_compress>
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
参数 | 说明 |
---|---|
-A | 调整可执行的自动解压缩文件。 |
-b<工作目录> | 指定暂时存放文件的目录。 |
-c | 替每个被压缩的文件加上注释。 |
-d | 从压缩文件内删除指定的文件。 |
-D | 压缩文件内不建立目录名称。 |
-f | 更新现有的文件。 |
-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 | 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。 |
-v | 显示指令执行过程或显示版本信息。 |
-V | 保存VMS操作系统的文件属性。 |
-w | 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。 |
-x<范本样式> | 压缩时排除符合条件的文件。 |
-X | 不保存额外的文件属性。 |
-y | 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。 |
-z | 替压缩文件加上注释。 |
-$ | 保存第一个被压缩文件所在磁盘的卷册名称。 |
-<压缩效率> | 压缩效率是一个介于1-9的数值。 |
例子:
将 /home/test/ 这个目录下所有文件和文件夹打包为当前目录下的 test.zip:
zip -q -r test.zip /home/test
如果在我们在 /home/test 目录下,可以执行以下命令:
zip -q -r test.zip *
从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c
zip -qroD test.zip test
将test文件夹压缩好,保留test文件夹下的文件时间信息等
unzip 命令
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]
选项参数列表
参数 | 说明 |
---|---|
file[.zip] | ZIP存档的路径。如果文件规范是通配符,则按操作系统(或文件系统)确定的顺序处理每个匹配的文件。只有文件名可以是通配符;路径本身不能。通配符表达式类似于常用Unix shell(sh、ksh、csh)中支持的表达式,可能包含:*,匹配0或多个字符的序列。?,匹配一个字符。[…],匹配括号内的任何单个字符;范围由开始字符、连字符和结束字符指定。如果是感叹号或插入符号(‘!‘或者‘^’)在左括号后面,则括号中的字符范围被补充(也就是说,除了括号中的字符外,任何字符都被认为是匹配的)。若要指定逐字左括号,必须使用三个字符序列‘‘[[]’’。(确保引用任何可能被操作系统解释或修改的字符,特别是在Unix和VMS下。)如果没有找到匹配项,则假定规范为文字文件名;如果也失败,则追加后缀.zip。请注意,与任何其他ZIP存档一样,支持自解压ZIP文件;只需显式地指定.exe后缀(如果有的话)。 |
[file(s)] | 要处理的归档成员的可选列表,用空格分隔。(用VMSCLI定义的VMS版本必须用逗号分隔文件。见下文备选案文中的-v)。正则表达式(通配符)可用于匹配多个成员;参见上文。同样,请务必引用否则将由操作系统展开或修改的表达式 |
[-x xfile(s)] | 要排除在处理之外的归档成员的可选列表。由于通配符通常匹配(‘/’)目录分隔符(异常请参见选项-W),此选项可用于排除子目录中的任何文件。例如,“unzip foo *.[Ch] -x /”将提取主目录中的所有C源文件,但在任何子目录中都不提取。如果没有-x选项,则将提取zip文件中所有目录中的所有C源文件。 |
[-d exdir] | 提取文件的可选目录。默认情况下,所有文件和子目录都在当前目录中重新创建;-d选项允许在任意目录中提取(总是假定一个目录具有写入该目录的权限)。这个选项不需要出现在命令行的末尾;它也可以在zipfile规范之前(带常规选项)、在zip文件规范之后,或者在文件和-x选项之间被接受。选项和目录可以连接在一起,没有任何空白,但请注意,这可能会导致正常的shell行为被抑制。特别是,‘-d~’被Unix C shell扩展为用户主目录的名称,但是‘-d’被视为当前目录的一个文字子目录‘’。 |
请注意,为了支持过时的硬件,Unzip的使用屏幕仅限于22或23行,因此只应被视为基本解压缩语法的提醒,而不是所有可能的标志的详尽列表。详尽的清单如下:
选项 | 说明 |
---|---|
–help | 帮助信息 |
–version | 显示命令版本信息 |
-c | 将解压结果送到标准输出 |
-f | 解压时更新现有的文件,即仅解压磁盘上已经存在且比磁盘副本更新的文件。默认情况下,在覆盖之前解压缩查询,但是-o选项可以用于抑制查询 |
-l | 显示压缩包内文件的详细信息。将打印指定文件的名称、未压缩文件大小、修改日期和时间,以及所有指定文件的总计。 |
-p | 将解压结果送到标准输出,不对字符转换。只有文件数据被发送到stdout,文件总是以二进制格式提取 |
-t | 检查压缩文件的正确性。该选项提取内存中的每个指定文件,并将扩展文件的CRC(循环冗余校验,增强校验和)与原始文件的存储CRC值进行比较。 |
-T | 将存档上的时间戳设置为每个归档中最新文件的时间戳。这对应于zip的-go选项,但它可以用于通配符zip文件(例如,“unzip –T *.zip”),而且速度要快得多 |
-u | 更新现有文件,并在需要时创建新文件。该选项执行与-f选项相同的功能 |
-v | 列出存档文件(详细格式)或显示诊断版本信息。 |
-z | 仅显示压缩文件的备注信息 |
修饰符 | 说明 |
---|---|
–help | 帮助信息 |
–version | 显示命令版本信息 |
-a | 解压时,对文本文件做字符转换 |
-b | 不对文本文件字符转换,把所有文件当做二进制文件。 |
-B | 保存每个覆盖文件的备份副本,‘foo’的旧拷贝改名为‘foo~’。 |
-C | 解压时,设置文件名大小写敏感 |
-D | 跳过提取项的时间戳恢复。 |
-E | [仅限MacOS]在恢复操作期间显示MacOS额外字段的内容。 |
-F | [仅限Acorn]禁止从存储的文件名中删除NFS文件类型扩展。 |
-i | [仅限MacOS]忽略存储在MacOS额外字段中的文件名。相反,使用存储在条目标题的泛型部分中的最兼容的文件名。 |
-j | 垃圾路。存档的目录结构不被重新创建;所有文件都存放在提取目录中(默认情况下是当前的)。 |
-J | [仅限BeOS]垃圾文件属性。文件的BeOS文件属性没有恢复,只是文件的数据。 |
-K | 保留SUID/SGID/duy文件属性。如果没有此标志,则出于安全原因,将清除这些属性位。 |
-L | 解压时,将文件名改为小写字母 |
-M | 把解压结果送给more分屏显示 |
-n | 解压时,不覆盖原有的文件 |
-N | 将文件注释解压缩为Amiga文件。 |
-o | 不提示用户,覆盖原有文件 |
-P | 解压时,输入密码 |
-q | 静默模式 |
-s | [OS/2, NT, MS-DOS]将文件名中的空格转换为下划线 |
-S | [VMS]将文本文件(-a,-aa)转换为Stream_LF记录格式,而不是文本文件默认的可变长度记录格式。 |
-U | [UNICODE_SUPPORT only]修改或禁用UTF-8处理。当Unicode_Support可用时,选项-U强制解压将UTF-8编码文件名中的所有非ASCII字符转义为“#Uxxxx” |
-V | 保留(VMS)文件版本号。VMS文件可以用版本号存储,格式为file.ext;#。默认情况下,‘;#’版本号将被删除,但此选项允许保留它们。 |
-W | [仅当WILD_STOP_AT_DIRR编译时选项启用] 修改模式匹配例程,以便 “?”和“*”与目录分隔符“/”不匹配。 |
-X | [VMS, Unix, OS/2, NT, Tandem] 在Unix下恢复用户和组信息(UID/GID) |
-Y | [VMS] 将存档的文件名结尾“.nn”(其中‘nnn’是一个十进制数)视为VMS版本号(‘;nnn’)。(默认的做法是将它们视为文件类型。) |
-$ | [MS-DOS, OS/2, NT]如果提取介质是可移动的(例如磁盘),则恢复卷标签。加倍的选项(
− – −)允许固定媒体(硬盘)也被标记。默认情况下,卷标签将被忽略。 |
-/ extensions | [Acorn] 重写Unzip$Ext环境变量提供的扩展列表。在提取过程中,与此扩展列表中的项匹配的文件名扩展名将在提取文件的基名前面交换。 |
-: | 允许将存档成员解压缩到当前“提取根文件夹”之外的位置。 |
-^ | [Unix only] 允许提取的ZIP存档条目的名称中包含控制字符。 |
-2 | [vms]强制无条件地将文件名转换为ODS 2-兼容名称 |
例子:
unzip -q <zip_file> -d <directory_to_unzip>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155810.html