zip命令 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
通过 zip 命令可以将文件打包成.zip格式的压缩包,里面会附含文件的名称、路径、创建时间、上次修改时间等等信息,与 tar 命令相似。
语法
该命令的语法如下:
zip [选项] 压缩包名 源文件或源目录列表
常用命令选项
-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-t<日期时间>:把压缩文件的日期设成指定的日期;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z:替压缩文件加上注释;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值。
默认操作是从列表中添加或替换zip文件条目,该列表可以包含特殊名称—用于压缩标准输入。如果省略zipfile和list, zip将stdin压缩为stdout。
-f Freshen:只更新过的文件 -u 更新:只有更改或新的文件
-d 删除zipfile中的条目 -m 移动到zipfile(删除操作系统文件)
-r 递归的目录 -j junk (don't record) directory names
-0 只存储 -l 将LF转换为CR LF (-ll CR LF to LF)
-1 压缩速度快 -9 更好的压缩
-q 安静运行 -v 详细操作/打印版本信息
-c 添加单行注释 -z 添加zipfile评论
-@ 从stdin读取名称 -o 使zipfile和最新的条目一样古老
-x 排除以下名称 -i 只包含以下名称
-F fix zipfile (-FF try harder) -D 不添加目录条目
-A 调整自解压exe -J 垃圾文件前缀(unzipsfx)
-T 测试zipfile完整性 -X 排除额外的文件属性
-y 将符号链接存储为链接而不是引用的文件
-e 加密 -n 不要压缩这些后缀
-h2 show more help
zip -o 目录名.zip -r -9 目录
参数
zip压缩包:指定要创建的zip压缩包;
文件列表:指定要压缩的文件列表。
实例
将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:
zip -q -r html.zip /home/Blinux/html
上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果:
zip -q -r html.zip html
zip -q -r html.zip *
压缩 example/basic/ 目录内容到 basic.zip 压缩包中 –x 指定排除目录,注意没有双引号将不起作用。
zip -r basic.zip example/basic/ -x "example/basic/node_modules/*" -x "example/basic/build/*" -x "example/basic/coverage/*"
上面压缩解压出来,内容存放在 example/basic/, 如果想存放到根目录,进入目录进行压缩,目前没有找到一个合适的参数来解决此问题。
cd example/basic/ && zip -r basic.zip . -x "node_modules/*" -x "build/*" -x "coverage/*"
压缩效率选择:
zip -9 # 1-9 faster->better
创建 public_html 目录下忽略所有文件和文件夹,排除包括文本 backup 的所有文件。
zip -r public_html.zip public_html -x *backup*
httpdocs 目录忽略 .svn 文件或 git 的文件和目录下创建所有文件的归档。
zip -r httpdocs.zip httpdocs --exclude *.svn* --exclude *.git*
httpdocs 目录忽略的所有文件,并与 .log 结尾的目录下创建所有文件的归档。
zip -r httpdocs.zip httpdocs --exclude "*.log"
unzip
参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令
unzip *.zip -d /目录
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
问题解决
CentOS7中命令找不到
-Bash: Unzip: Command Not Found
# 解决方法
yum install -y unzip zip
Have an aim in life, or your energies will all be wasted.
原文地址:https://blog.csdn.net/qq_50573146/article/details/127223995
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_12351.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!