linux解压缩,不包括文件夹和下面的所有内容

Rav*_*avi 12 linux unzip

嗨,我必须解压缩一个可能有一个目录的文件,我想要排除该目录中的所有内容,我尝试了很多选项并在这里查看,但似乎没有找到任何好的解决方案.

这些是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
Run Code Online (Sandbox Code Playgroud)

我尝试了这个命令,它只提取其中的文件,但不提取文件夹及其内容:

$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
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

dog*_*ane 17

您需要引用排除模式以便将其传递给unzip.否则它将在被传递之前由shell扩展unzip.

尝试:

unzip patch2.zip -x "EXCLUDE/*"
Run Code Online (Sandbox Code Playgroud)

  • 要指定多个排除,请使用以下语法:-x "pattern 1" "pattern 2" ...,不要使用 -x "pattern 1" -x "pattern 2",否则第二个 -x 将被视为匹配模式将产生警告消息。我用谷歌搜索,但发现这个问题很少被提及,所以我想与有需要的人分享这些信息。 (6认同)