如何从 zip 文件的特定目录中提取一个文件

如何从 zip 文件的特定目录中提取一个文件

我得到了一个这样的 zip 文件:

zipfile.zip  
          |______ -JWQYBCVAQA=

                    |_______ text.txt
                             othergarbage.jpg
                             othergarbage.deb
                             othergarbage.whatever

我只需要提取text.txt

我尝试过:unzip Externo.zip -x '/-JWQYBCVAQA=/behavior_packs' '/-JWQYBCVAQA=/db' '/-JWQYBCVAQA=/resource_packs' '/-JWQYBCVAQA=/level.dat' '/-JWQYBCVAQA=/level.dat.old' '/-JWQYBCVAQA=/world_icon.jpeg'

但它输出没有具有这些名称的文件

我不知道该怎么做,如能得到任何帮助我将不胜感激。

答案1

不要使用前导斜杠,只需将文件路径作为第二个参数:

unzip zipfile.zip -JWQYBCVAQA=/test.txt

您还可以使用通配符:

unzip zipfile.zip '*/test.txt' 

对于名称以-d或开头的文件/目录-x(这是 zip 文件名后允许的选项),为了对其进行转义,您可以在其前面加上\\(\作为unzip其本身,以及作为 shell 的额外转义)或'\'

答案2

要提取到特定目录,例如“mydir”,您可以使用:

unzip \
    -o `# overwrite`\
    -j zipfile.zip \
        -JWQYBCVAQA=/{text.txt,othergarbage.jpg} \
    -d mydir

对于“-JWQYBCVAQA=”中的所有文件,只需使用-JWQYBCVAQA=/*

相关内容