Linux快速提示:一步完成下载和解包

大多数时候,当我下载一些东西时,它是某种类型的文件存档-通常是tarball或zip文件。这可能是没有包含在Gentoo的Porage树中的应用程序的一些源代码,可能是内部公司应用程序的一些文档,甚至可能是像新安装的WordPress一样平凡的东西。

在终端中下载和解脱焦油的传统方式如下所示:

或者可能是更紧凑的形式:

无论哪种方式都有点笨拙。这是一个非常简单的操作,像bash这样强大的shell应该允许以更“圆滑”的方式执行这样的任务。

嗯,多亏了一个有用的小命令“curl”,我们实际上可以在一个管道式语句中完成上面的乱七八糟的事情:

没有要处理的临时文件,没有乱七八糟的“&”符号。简而言之,一个高度紧凑、高效的指挥。事实上,从理论上讲,curl方法可能比串联的wget/tar/rm混乱更快,因为如果可能,stdout管道将使用RAM作为缓冲区,而wget和tar(使用-f开关)必须直接从磁盘进行读/写。

顺便说一句,带有-v选项的tar(我们在上面的所有示例中使用它的方式)会将每个文件名打印到stdout,因为每个文件名都是解压的。这可能会妨碍curl显示下载状态的漂亮ncurses输出。我们可以在不使用-v的情况下调用tar来使其静默,如下所示:

仅此而已!

相关文章