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


[email protected] | --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、例子代码


创建存档stuff.zip(假设它不存在),并以压缩形式将所有文件放在当前目录中(.zip后缀自动添加,除非存档名称已经包含一个点;这允许明确说明其他后缀)

zip  stuff  *

zip  stuff  .* *

压缩整个目录。创建存档foo.zip,其中包含当前目录中包含的目录foo中的所有文件和目录。

zip  -r  foo  foo

您可能希望创建一个包含foo中文件的zip存档,而不记录目录名foo。可以使用-j选项关闭路径,如

zip  -j  foo  foo/*

如果您缺少磁盘空间,您可能没有足够的空间来保存原始目录和相应的压缩归档文件。在这种情况下,您可以使用-m选项分步骤创建归档文件。如果foo包含子目录TomDickHarry。其中,第一个命令创建foo.zip,下两个命令添加到其中。在完成每个zip命令后,最后创建的归档文件将被删除,为下一个zip命令提供工作空间。

zip  -rm  foo  foo/tom

zip  -rm  foo  foo/dick

zip  -rm  foo  foo/harry

使用-s设置拆分大小并创建拆分存档。大小可选地被k(KB)m(MB)g(Gb)t(Tb)之一跟随。创建目录foo的拆分存档,每个分区不大于2GB。如果foo包含5 GB的内容,并且内容未经压缩就存储在拆分存档中(为了使这个示例变得简单),这将创建三个分块,分别是2GBsplit.z012GBsplit.z02和略高于1GBsplit.zip

zip  -s  2g  -r  split.zip  foo

虽然zip不更新拆分档案,但zip提供了新的选项-O(-Output-file),允许更新拆分档案并将其保存在新的存档中。读取归档文件,即使拆分,也会添加foo.cbar.c文件,并将结果存档写入outArchive.zip。如果inArchive.zip是拆分的,那么outArchive.zip默认为相同的拆分大小。请注意,outArchive.zip和使用它创建的任何拆分文件都会在没有警告的情况下被覆盖。这种情况将来可能会改变。

zip  inarchive.zip  foo.c  bar.c  --out  outarchive.zip

 

7、实例

1)压缩文件


[[email protected] weijie]# zip -r res . -i *.c             //压缩当前目录下的所有.c文件

  adding: 11.c (stored 0%)

  adding: 4.c (stored 0%)

  adding: 2.c (deflated 9%)

  adding: 3.c (stored 0%)

  adding: 5.c (deflated 13%)

[[email protected] weijie]# ls

11.c  1.c.gz 2.c  3.c  4.c 5.c  6.c~  res.zip

2)给压缩文件添加、删除内容


[[email protected] weijie]# zip res.zip -g 6.c~          //追加6.c~

  adding: 6.c~ (stored 0%)

[[email protected] weijie]# zip res.zip -d 2.c           //删除2.c

deleting: 2.c

3)压缩时设置密码


[[email protected] weijie]# zip -er res . -i *.c        //设置密码,需要输入两次密码

Enter password: 

Verify password: 

  adding: 11.c (stored 0%)

  adding: 4.c (stored 0%)

  adding: 2.c (deflated 9%)

  adding: 3.c (stored 0%)

  adding: 5.c (deflated 13%)

原文地址:https://www.cnblogs.com/wj78080458/p/10062323.html

时间: 2025-01-17 05:58:56

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

Linux基础命令(之一)详解

Linux基础命令(之一)详解 学习linux的朋友都知道,系统大多数操作都是命令行的操作方式,当然如今也有图形化界面的操作方式,但是多数情况下仍然使用命令的操作模式,所以命令的作用与用法是成为学好.学会Linux系统的必备前提,也是重点之一,所以今天来聊一聊一些基础命令的用法与其作用. 1.系统关机或重启命令(小白也必须要会的) shutdown (win 系统也有) 常用参数:shutdown -h (halt) 直接关机(关闭电源) shutdown -h  now[+10]    现在关

linux基础命令——tree

Linux基础命令--tree 编辑文章 -d :只显示目录,不显示其目录下的子文件 -L level:显示第几级 图片描述 显示以rc开头的 备份: 创建多级目录: -v:可以看过程

第九天:Linux基础命令(二)与 C编译过程

一:Linux基础命令:   1.find 命令 查找文件 如 find / -name hello    查找根目录下已hello命名的文件.   2.grep命令 字符串匹配 如 grep "lucy" * -R 递归查找文件中含有“lucy”字符串的文件   3.du命令 查看文件所占容量   4 . >   重定向 如 ls > savels     重定向ls的标准输出从屏幕到savels文件 5 . >>    附加 如 ls >> sa

菜鸟的成长记录--linux基础命令

以下是我学习时接触的命令,后续会慢慢添加 1.tty:查看终端类型 虚拟终端:/dev/tty# 伪终端:/dev/pts/# 控制台:/dev/console 串行终端:/dev/ttyS# 2.startx:启动图形界面 3.ifconfig:查看网卡信息 4.cd:进入用户主目录 cd ~:进入用户主目录 cd ~USERNAME:进入其他用户主目录 cd -:在前一个目录和当前目录来回切换 cd .:当前目录 cd ..:上一级目录 cd ../..:返回上两级目录 cd !$:把上一个

运维基础--Linux基础命令

 Linux基础命令 刚接触Linux,往往会有一个印象就是Linux操作起来比我们熟悉的windows难,其实不然,只要了解熟知了Linux的CLI界面诸多的命令的用法就能使很多在GUI界面下的操作变的无比简单:以下是Linux使用中的几个基础命令: 1.cd: cd [-L|-P] [dir]  改变shell 的工作目录,默认是用户的家目录: cd DIR:切换到DIR目录: cd:   切换至当前用户的家目录: cd - :将工作目录切换至上一次的工作目录:两个目录之间的来回切换! 原理

常用Linux基础命令

1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行.2. ls 查看目录或者文件的属*,列举出任一目录下面的文件 eg: ls /usr/man ls -l a.d表示目录(directory),如果是一个”-”表示是文件,如果是l则表示是一个连接文件(link) b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x). 3. cp 拷贝文件 eg:

linux基础命令--笔记

linux基础命令--笔记 一.   1  . --help 命令简单帮助 2. man 查看命令复杂帮助  (非内置命令) 3  . help (bash的内置命令)如 :help cd  .help pwd   help  内置命令可用man cd  等查看. 4  . ls==list 查看目录列表 5 .  mkdir   == make directory  创建目录.例如:mkdir /date -p 递归创建目录 :mk 6  .  cd      ==change directo

LINUX基础命令的使用以及vim的简单命令

一 命令提示符说明 [登录用户@主机名 工作目录]# 二 Linux命令格式 命令字  [选项]  [参数1] [参数2] [ ] 表示里面内容可有可无 选项:如果是单个字符,用-               如:# ls -l 如果是一个单词,用--              如:# ls --color 多个单个字符的选项可以合并一个-   如:# ls -l -h = # ls –lh 三 基本命令及其说明 1. 基本命令 # uname -r//查询内核 # cat /etc/redha

linux基础命令学习(六)DHCP服务器配置

工作原理:        1.客户机寻找服务器:广播发送discover包,寻找dhcp服务器        2.服务器响应请求:单播发送offer包,对客户机做出响应.提供客户端网络相关的租约以供选择        其中服务器在收到客户端的请求后,会针对客户端的mac地址与本身的设定数据进行一下工作:            a.到服务器的登录文件中寻找该用户之前曾经使用过的ip,若有且该ip目前没有人使用,这提供此ip为客户机            b.若配置文件中有针对该mac提供额外的固定