如何理解 tar 减号

如何理解 tar 减号

最近我遇到了一个命令:

curl https://start.spring.io/starter.tgz -d dependencies=webflux,actuator | tar -xzvf -

curl本身不会下载该tgz文件,因为它不是wget.tar -xzvf也不下载任何文件。但tar -xzvf -确实“下载”文件。我在联机帮助页中没有找到任何-解释tar,并且我认为它与登录 shell 无关。我猜这是我用的外壳。这是什么-

答案1

curl 下载文件。与 相反wget,它会将下载的文件写入到,stdout除非您指定-o保存文件的选项。
至于-in tar 命令,它与选项一起出现,您可以在, 部分-f找到解释:info tar6.1 Choosing and Naming Archive Files

如果使用“-”作为 ARCHIVE-NAME,“tar”将从标准输入读取存档(列出或提取文件时),或将其写入标准输出(创建存档时)。如果在修改存档时使用“-”作为 ARCHIVE-NAME,“tar”将从其标准输入读取原始存档,并将整个新存档写入其标准输出。

答案2

Curl 下载文件并将其发送到 STDOUT。同样可以用 来完成wget

然后通过管道( |)将此文件发送到tar命令的STDIN。这个破折号 ( -) 告诉 tar 使用 STDIN 作为文件而不是文件系统中的文件。

相关内容