La plupart du temps, lorsque je télécharge quelque chose, il s’agit d’une archive de fichiers - généralement un fichier compressé ou un fichier zip. Il peut s’agir du code source d’une application qui n’est pas incluse dans l’arborescence de Portage de Gentoo, de la documentation pour une application d’entreprise interne ou même d’une tâche aussi banale qu’une nouvelle installation WordPress.
La manière traditionnelle de télécharger et de décompresser quelque chose dans le terminal serait la suivante:
wget https://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
rm latest.tar.gz
Ou peut-être la forme plus compacte:
wget https://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz
De toute façon, c'est un peu maladroit. C’est une opération très simple, un shell puissant comme bash devrait permettre à une telle tâche d’être exécutée de manière plus «fluide».
Eh bien, grâce à une petite commande utile "curl", nous pouvons accomplir le désordre ci-dessus en une seule déclaration:
curl https://wordpress.org/latest.tar.gz | tar xvz
Pas de fichiers temporaires à supprimer, pas de déconner avec des esperluettes. En bref, une commande très compacte et efficace. En fait, d’un point de vue théorique, la méthode curl peut être plus rapide que le désordre wget / tar / rm concaténé puisque stdout piping utilisera la mémoire RAM si possible, alors que wget et tar (avec le commutateur -f) doivent être lus / écrits. directement à partir d'un disque.
Par ailleurs, tar avec l’option -v (comme nous l’avons utilisé dans tous les exemples ci-dessus) imprime chaque nom de fichier sur la sortie standard, car ils ne sont pas tous deux classés. Cela peut entraver la sortie de curl, qui indique le statut du téléchargement. Nous pouvons faire taire tar en l'invoquant sans -v ainsi:
curl https://wordpress.org/latest.tar.gz | tar xz
Et c’est tout ce qu’il ya à faire!