Skip to main content

Linux QuickTip:一步下載和取消焦點

Linux QuickTip:一步下載和取消焦點

Geoffrey Carr

大多數時候,當我下載某些東西時,它是某種文件存檔 - 通常是tarball或zip文件。這可能是Gentoo的Portage樹中未包含的應用程序的一些源代碼,內部企業應用程序的一些文檔,甚至是新的WordPress安裝的平凡內容。

在終端中下載和解開某些東西的傳統方式是這樣的:

wget http://wordpress.org/latest.tar.gz

tar xvzf latest.tar.gz

rm latest.tar.gz

或者更緊湊的形式:

wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz

無論哪種方式都有點笨拙。這是一個非常簡單的操作,像bash這樣強大的shell應該允許以更“光滑”的方式執行這樣的任務。

好吧,多虧了一個有用的小命令“curl”,我們實際上可以在一個管道語句中完成上面的混亂:

curl http://wordpress.org/latest.tar.gz | tar xvz

沒有臨時文件可以擺脫,沒有與&符號混亂。簡而言之,一個高度緊湊,高效的命令。實際上,從理論角度來看,curl方法可能比連接的wget / tar / rm混亂更快,因為stdout管道將盡可能使用RAM作為緩衝區,而wget和tar(使用-f開關)必須讀/寫直接來自磁盤。

順便說一下,使用-v選項的tar(我們在上面所有示例中使用它的方式)將每個文件名打印到stdout,因為每個文件都是untarred。這可能會妨礙curl很好,ncurses輸出顯示下載狀態。我們可以通過在沒有-v的情況下調用它來沉默tar:

curl http://wordpress.org/latest.tar.gz | tar xz

這就是它的全部!

Link
Plus
Send
Send
Pin