La mayoría de las veces, cuando descargo algo, es un archivo de algún tipo, generalmente un archivo comprimido o un archivo zip. Esto podría ser algún código fuente para una aplicación que no esté incluida en el árbol Portage de Gentoo, algo de documentación para una aplicación corporativa interna o incluso algo tan mundano como una nueva instalación de WordPress.

La forma tradicional de descargar y desarticular algo en el terminal sería algo como esto:

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

tar xvzf latest.tar.gz

rm latest.tar.gz

O quizás la forma más compacta:

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

De cualquier manera es un poco torpe. Esta es una operación muy simple, un shell potente como bash debería permitir que dicha tarea se realice de una manera más "elegante".

Bueno, gracias a un pequeño y útil comando "curl", podemos realmente lograr el desorden arriba en solo una declaración canalizada:

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

No hay archivos temporales para deshacerse de, sin meterse con ampersands. En definitiva, un comando altamente compacto y eficiente. De hecho, desde un punto de vista teórico, el método de curl puede ser más rápido que el wget / tar / rm concatenado ya que la tubería stdout usará RAM como un búfer si es posible, mientras que wget y tar (con el interruptor -f) deben leer / escribir directamente desde un disco.

Por cierto, tar con la opción -v (la forma en que lo estamos utilizando en todos los ejemplos anteriores) imprime cada nombre de archivo en la salida estándar, ya que cada uno no tiene marca. Esto puede interferir con la salida de ncurses que muestra el estado de descarga. Podemos silenciar el alquitrán invocándolo sin -v por tanto:

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

Y eso es todo lo que hay que hacer!

Los Mejores Consejos:
Comentarios: