如何在不解压的情况下知道 zip 存档中特定文件的路径?

如何在不解压的情况下知道 zip 存档中特定文件的路径?

我只知道文件名,但不知道它的确切位置。我只想从存档中提取该文件。我需要知道它在档案中的位置。

答案1

unzip接受通配符和通配符。如果您知道文件名,那么您可以简单地说:

unzip archive.zip "**/file_to_extract"

为了提取所述文件。

答案2

作为评论和答案的综合,您可以像这样进行:

unzip -l archive.zip | grep "nameOfile"
./tmp/nameOffileponey
./ham/smoked/nameOfile
#identify the path of the file precisely in your archive if filtering gives you several result and then use 
 unzip archive.zip ./ham/smoked/nameOfile

这应该有效

答案3

将 zip 存档挂载为文件系统保险丝拉链。然后您可以使用任何您喜欢的命令访问其中的文件。

mkdir foo
fuse-zip foo.zip foo

needle.txt然后,从它所在的子目录复制:

find foo -name needle.txt -exec cp -p {} . \;

或者使用 shell 的递归通配符(在 bash 中,您需要shopt -s globstar先运行;在 zsh 中,这是开箱即用的):

cp -p foo/**/needle.txt .

使用完文件系统后将其卸载。

fusermount -u foo

相关内容