从 URL 解压 tar 文件的部分文件夹

从 URL 解压 tar 文件的部分文件夹

我有一个 URL,它指向一个很大的 tar 文件,大约 200gb,我需要在我的 Linux 系统中提取该文件的一个文件夹。由于文件很大,我不想将整个文件下载到我的 Linux 系统。而且我没有源系统的 shh 访问权限。

有什么办法可以仅提取 tar.gz 文件的一小部分?

答案1

要仅提取特定目录,您需要知道确切的文件名。通配符不适用于 tar。命令将如下所示

curl -s -o - <URL>|tar xz /path/file1 /path/file2  ...

答案2

tar格式不允许直接寻址文件(或目录) - 这是因为应收账韭菜需要从备份介质中按顺序读取。

当然,你可以做的是,在提取相关部分后停止该过程。你可以这样做

curl -o - 'http://your/url' | tar -xvz your_filter

这将从头开始下载文件并提取相关部分,一旦拥有所需的一切,您可以停止该过程以避免下载其余部分。

根据您对源服务器的访问类型,您甚至可以做得更好:您的 PHP 是否没有保存模式?如果是,您可以通过shell_exec和朋友提取所需的内容。

相关内容