![在 Windows 7 中从 tar.tgz 存档中提取特定文件](https://linux22.com/image/1366971/%E5%9C%A8%20Windows%207%20%E4%B8%AD%E4%BB%8E%20tar.tgz%20%E5%AD%98%E6%A1%A3%E4%B8%AD%E6%8F%90%E5%8F%96%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6.png)
这个问题已被问过几次,但我似乎无法找到解决方案。
我有一个压缩文件包含 .txt 文件的存档。我需要在 Win 7 中一步一步以编程方式从中提取特定文件 t1.txt。我尝试过 Winzip 14.5、7Zip 和 Tartool,但均未成功。
Winzip 提示用户输入,说 tat.tgz 文件中有一个 .tar 文件。您想提取其中的内容吗?我搞不清楚是否有一个开关指示它始终提取内容。7 Zip 将所有 .txt 文件的内容提取到控制台上,而不是将其提取为文件。Tartool 不允许从存档中提取特定文件。
请问有人可以帮我完成这个吗?
谢谢,Ap
答案1
从技术上来说,如果不处理所需文件“之前”的所有文件,就不可能从 tgz 档案中提取一个文件。
这是因为所使用的 GNU zip 压缩不具有随机访问功能,您必须从文件开头开始解压缩,然后只要您想要的数据尚未提取就继续。
因此优化的工具只能保留您要提取的文件之后的数据(但我不知道这样的工具)。
答案2
如果可以选择,您可以使用 WinRAR 从存档中提取单个文件(我使用gzip-1.6.tar.gz从这里去测试):
WinRar.exe e gzip-1.6.tar.gz "gzip-1.6\gzip.doc"
如果您想提取具有完整路径的文件,请使用x
而不是。e
既然您提到您想以编程方式执行此操作,当然请记住您不能使用程序重新分发 WinRAR、WinZIP 等可执行文件。