【问题标题】:List or extract file from recursive archived file without fully extraction从递归归档文件中列出或提取文件而不完全提取
【发布时间】:2017-12-20 07:18:47
【问题描述】:

有没有办法在不提取所有文件的情况下列出所有文件? AFAIK,当前工具可以列出目录/文件,但不能处理嵌套档案。 例如,我可以列出archive.tar.gz 中的所有文件,并且只提取file4 而不提取所有文件吗? 我认为理论上可以通过解析存档标题并仅提取所需的文件来完成,但在我从头开始执行此操作之前,我想知道是否有任何现有的工具/库来执行此操作。 谢谢。

archive.tar.gz
    |----file1
    |----dir1
    |       |----file2
    |----archive1.tar
            |----file3
            |----archive2.tar.bz2
                    |----file4

【问题讨论】:

  • 要访问file4,您必须解压archive1 和archive2。也许您可以编写代码在内存中执行此提取,而无需将嵌套存档写入文件系统。但是您必须以某种方式提取它们才能获得它们的目录和内容。
  • 谢谢,我想我会更多地研究存档标题。一些 GUI 存档工具,例如 7zFM,可以像文件资源管理器一样打开递归存档文件,不确定它们是将文件提取到某个临时路径还是只是戳存档头。

标签: python gzip 7zip ziparchive


【解决方案1】:

你试过 7-Zip 的 list 命令吗?我不确定这是否适用于 .tar 文件,而且我没有要测试的文件。但是,如果您在命令行命令下查看 7-Zip 中的帮助文件,您会发现列表选项和随之而来的开关。有基本的例子是:

7z l archive.zip

但是,您的可能看起来更像这样:

"C:\Program Files\7-Zip\7z.exe" l "\\Server\Folder\Archive.7z" "-ir!OurPrograms\TestFile.txt"

我目前正试图弄清楚如何通过 vbscript 中的 list 命令来做某事。如果你想签出线程,这里是链接:https://community.spiceworks.com/topic/2127324-file-exists-in-7-zip-archive

祝你好运!

【讨论】:

  • 是的,我尝试了 7z 命令,但它不能直接在嵌套存档上工作。
猜你喜欢
  • 2018-10-07
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多