首页 > 应用开发 > > Linux基础命令---unzip
unzip
解压zip指令压缩过的文件。unzip将列出、测试或从ZIP存档中提取文件,这些文件通常在MS-DOS系统中找到。默认行为(没有选项)是将指定ZIP存档中的所有文件提取到当前目录(及其下面的子目录)中。一个配套程序zip(1L)创建ZIP档案;这两个程序都与PKWare的PKZIP和PKUNZIP为MS-DOS创建的档案兼容,但在许多情况下,程序选项或默认行为有所不同。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]
2、选项参数列表
参数说明
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-兼容名称
3、环境选项
unzip的默认行为可以通过放置在环境变量中的选项来修改。这可以用任何选项来完成,但是它可能对-a,-L,-C,-q,-o或-n修饰符最有用:默认情况下使unzip自动转换文本文件,使文件名从大写系统转换为小写,使其不敏感地匹配名称,使其更安静,或者让它在解压文件时始终覆盖或不覆盖它们。例如,要使解压缩尽可能安静,只报告错误,可以使用以下命令之一:
Unix Bourne shell: UNZIP=-qq; export UNZIP
Unix C shell:setenv UNZIP -qq
OS/2 or MS-DOS:set UNZIP=-qq
VMS (quotes for lowercase): define UNZIP_OPTS "-qq"
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2505/viewspace-3132084/ ,如需转载,请注明出处,否则将追究法律责任。