嗨,我需要解压一个可能带有目录的文件,并且我想排除该目录中的所有内容,我尝试了很多选项并在这里查找,但似乎没有找到好的解决方案。
以下是zip文件的内容: 请注意,EXCLUDE文件夹的深度未知,但我们必须排除其中的所有内容。
$unzip -l patch2.zip
Archive: patch2.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-10-29 17:42 EXCLUDE/
0 2013-10-29 17:24 EXCLUDE/inner/
0 2013-10-29 17:24 EXCLUDE/inner/inner1.txt
0 2013-10-29 15:45 EXCLUDE/file.txt
0 2013-10-29 15:44 patch.jar
0 2013-10-29 15:44 system.properties
--------- -------
0 6 files
我尝试了这个命令,它只能提取其中的文件,而不能提取文件夹及其内容:
$unzip -l patch2.zip -x EXCLUDE/*
Archive: patch2.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-10-29 17:42 EXCLUDE/
0 2013-10-29 17:24 EXCLUDE/inner/
0 2013-10-29 17:24 EXCLUDE/inner/inner1.txt
0 2013-10-29 15:44 patch.jar
0 2013-10-29 15:44 system.properties
--------- -------
0 5 files
感谢您的帮助。
echo *
时,shell会将*
“扩展”成一个文件名列表,如file1
、file2
等,然后再执行echo
。因此,echo *
变成了echo file1 file2
。echo
程序从未看到通配符,它只看到了参数file1
和file2
。但是,如果你将模式用引号括起来,echo "*"
, shell就不会执行这个扩展操作,而是将模式作为一个参数传递给程序,由程序自己来解释。 - dogbane