我得到了一个这样的 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=/*