tar 是 wget 的结果

gia*_*kis 5 tar pipe wget

我想要wget一个文件tar,在一个命令中,我想这很简单,但我无法完成。我尝试了几件事。

wget <url> | tar -cvz file.gz.tar -

tar -cvzf file.tar `wget <url>`

wget -qO <url> | tar -cvf file.tar

wget <url> -O - | tar
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

Lam*_*ert 18

您是否真的想要tar该文件,或者您是否正在寻找将文件下载为压缩形式的文件。Tarring 文件只是将(未压缩的)文件捆绑到(未压缩的)存档中。如果要将文件下载为压缩文件,可以使用:

wget -qO - <url>|gzip -c - > file.gz


ter*_*don 8

您不能以这种方式处理输入流。它旨在处理文件。如果您按照您的描述设法创建了一个档案,它会是什么样子?你会如何解压它?没有要创建的文件名,只有数据。

我认为最好的办法是获取文件并在两个单独的命令中对其进行 tar。如果您不希望该文件保留在您的驱动器上,您可以使用 tar 的--remove-files标志:

wget http://example.com/filename && tar cvzf file.tgz --remove-files filename
Run Code Online (Sandbox Code Playgroud)

  • @ntzrmtthihu777 是的,但那完全不同。您正在接收压缩数据作为输入,并保存到 tarfile 中作为输出。OP 想要接收 _text_ 并将其传递给 tar。试试`curl some://url/file.html | 焦油xf`。那会失败。 (3认同)
  • 我很抱歉,但我必须不同意 tar 完全能够处理读取和写入文件的输入和输出流,事实上,我在安装 cower 之前在 Archlinux 上使用 aur 的通常操作模式是使用 curl 下载将它的 tarball 输入到输出流中,将其键入 tar xz (2认同)