Download do QuickTip do Linux e remoção de tarring em uma única etapa
Na maioria das vezes, quando eu baixo alguma coisa, é um arquivo de arquivo de algum tipo - geralmente um tarball ou um arquivo zip. Isso pode ser algum código-fonte para um aplicativo que não esteja incluído na árvore do Portage do Gentoo, alguma documentação para um aplicativo corporativo interno ou mesmo algo tão mundano quanto uma nova instalação do WordPress.
A maneira tradicional de baixar e descompactar algo no terminal seria algo assim:
wget http://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
rm latest.tar.gz
Ou talvez a forma mais compacta:
wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz
De qualquer maneira é um pouco desajeitado. Esta é uma operação muito simples, um shell poderoso como o bash deve permitir que essa tarefa seja executada de uma maneira mais “engenhosa”.
Bem, graças a um pequeno comando útil “curl”, podemos realmente realizar a bagunça acima em apenas uma instrução canalizada:
curl http://wordpress.org/latest.tar.gz | tar xvz
Nenhum arquivo temporário para se livrar, sem mexer com e comercial. Em suma, um comando altamente compacto e eficiente. De fato, do ponto de vista teórico, o método curl pode ser mais rápido que o wget / tar / rm concatenado, já que o stdout utilizará RAM como um buffer, se possível, enquanto wget e tar (com o switch -f) devem ler / gravar diretamente de um disco.
Aliás, o tar com a opção -v (a maneira como estamos usando em todos os exemplos acima) imprime cada nome de arquivo para stdout, já que cada um é descompactado. Isso pode atrapalhar a saída do ncurses, que mostra o status do download. Podemos silenciar o alcatrão invocando-o sem -v assim:
curl http://wordpress.org/latest.tar.gz | tar xz
E isso é tudo que existe!