Wenn ich etwas herunterlade, handelt es sich in der Regel um ein Dateiarchiv - in der Regel ein Tarball oder eine ZIP-Datei. Dies kann ein Quellcode für eine App sein, der nicht in der Portage-Struktur von Gentoo enthalten ist, einige Dokumentation für eine interne Unternehmensanwendung oder sogar etwas so banales wie eine neue WordPress-Installation.

Die traditionelle Art, etwas im Terminal herunterzuladen und abzutrennen, wäre etwa so:

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

tar xvzf latest.tar.gz

rm latest.tar.gz

Oder vielleicht die kompaktere Form:

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

So oder so ist es etwas unbeholfen. Dies ist eine sehr einfache Operation. Eine leistungsstarke Shell wie die bash sollte es ermöglichen, dass eine solche Aufgabe auf eine „glattere“ Weise ausgeführt wird.

Dank eines nützlichen kleinen Befehls "curl" können wir das oben beschriebene Chaos tatsächlich mit nur einer einzigen Pipeline-Anweisung bewerkstelligen:

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

Keine temporären Dateien, die Sie loswerden könnten, und keine Amsands. Kurz gesagt, ein sehr kompakter, effizienter Befehl. Aus theoretischer Sicht kann die Curl-Methode schneller als das verkettete wget / tar / rm-Problem sein, da stdout piping RAM als Puffer verwendet, wenn dies möglich ist, während wget und tar (mit der Option -f) lesen / schreiben müssen direkt von einer Festplatte.

Im Übrigen gibt tar mit der Option -v (wie wir es in allen obigen Beispielen verwenden) jeden Dateinamen in stdout aus, da er jeweils unverkürzt ist. Dies kann die nette Ausgabe von curl's behindern, die den Download-Status anzeigt. Wir können Teer zum Schweigen bringen, indem wir es ohne -v aufrufen:

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

Und das ist alles was dazu gehört!

Top-Tipps:
Kommentare: