我很少接触到RHEL,并且很惊讶地发现,unzip -l
与unzip -lv
不包括文件的权限。我看到提取文件最终可以恢复权限,但是我想知道是否存在一种无需解压缩即可检查权限的方法。
正如您在下面的命令行交互中所看到的,ex
可执行文件nonex
不是可执行文件,并且可以unzip
恢复两者的权限,但是我想查看这些权限而不进行解压缩
/tmp> ls -lgG *ex
-rwxrwxr-x 1 0 Feb 17 04:26 ex
-rw-rw-r-- 1 0 Feb 17 04:26 nonex
/tmp> zip -qq perms *ex
/tmp> unzip -l perms.zip
Archive: perms.zip
Length Date Time Name
--------- ---------- ----- ----
0 02-17-2015 04:26 ex
0 02-17-2015 04:26 nonex
--------- -------
0 2 files
/tmp> unzip -lv perms.zip
Archive: perms.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 02-17-2015 04:26 00000000 ex
0 Stored 0 0% 02-17-2015 04:26 00000000 nonex
-------- ------- --- -------
0 0 0% 2 files
/tmp> unzip -qq -d perms perms.zip
/tmp> ls -lgG perms
total 0
-rwxrwxr-x 1 0 Feb 17 04:26 ex
-rw-rw-r-- 1 0 Feb 17 04:26 nonex
您可以zipinfo
用来显示权限。请记住,取决于生成存档的位置,权限可能无法反映实际的源系统权限(如果要提取Windows中生成的存档,则尤其如此)。
这是文档的摘要zipinfo
,详细描述了输出格式,该输出格式基于熟悉的ls -l
(长)列表格式。第一个字段详细说明权限。
-rw-rws--- 1.9 unx 2802 t- defX 11-Aug-91 13:48 perms.2660
最后三个字段是文件的修改日期和时间及其名称。尊重文件名的大小写;因此,来自MS-DOS PKZIP的文件总是大写。如果使用存储的目录名称压缩文件,该名称也将显示为文件名的一部分。
第二个和第三个字段表示该文件在1.9版zip的Unix下已压缩。由于它来自Unix,因此该行开头的文件许可权以Unix格式打印。未压缩的文件大小(在此示例中为2802)是第四个字段。
第五个字段由两个字符组成,每个字符都可以具有多个值。第一个字符可以是't'或'b',表示zip分别认为该文件是文本文件或二进制文件;但是如果文件是加密的,则zipinfo通过大写字符(“ T”或“ B”)来记录这一事实。第二个字符也可以取四个值,具体取决于是否存在与文件关联的扩展本地头文件和/或“额外字段”(在PKWare的APPNOTE.TXT中进行了充分说明,但基本上类似于ANSI C中的编译指示-即,它们提供了一种将非标准信息包括在档案中的标准方法。如果两者都不存在,则该字符将为连字符('-');如果有扩展的本地头,但没有多余的字段,则为“ l”;如果相反,则为“ x”;如果两者都存在,则为“ X”。因此,此示例中的文件是(可能是)文本文件,未加密,并且既没有额外的字段也没有与之关联的扩展的本地标头。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句