Det meste af tiden, når jeg downloader noget, er det et filarkiv af en slags - som regel en tarball eller en zip-fil. Dette kunne være nogle kildekode til en app, der ikke er inkluderet i Gentoos Portage-træ, noget dokumentation for en intern virksomhedsapp, eller endda noget som dagligdags som en ny WordPress-installation.

Den traditionelle måde at downloade og untarring noget i terminalen ville være sådan noget:

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

tar xvzf latest.tar.gz

rm latest.tar.gz

Eller måske den mere kompakte form:

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

Enten måde er en smule klodset. Dette er en meget enkel betjening, en kraftig skal som bash bør tillade en sådan opgave at udføres på en mere "glat" måde.

Nå takket være en brugbar lille kommando "krølle", kan vi faktisk udføre rodet ovenfor i blot en piped erklæring:

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

Ingen midlertidige filer til at slippe af med, ingen messing med ampersands. Kort sagt, en meget kompakt og effektiv kommando. Faktisk kan krøllemetoden fra et teoretisk synspunkt være hurtigere end det sammenkædede wget / tar / rm rod, da stdout piping vil bruge RAM som buffer, hvis det er muligt, mens wget og tjære (med -f-switchen) skal læse / skrive direkte fra en disk.

I øvrigt udskriver tjære med -v-indstillingen (den måde, vi bruger det i alle ovenstående eksempler) ud hvert filnavn til stdout, da hver ikke er markeret. Dette kan komme i vejen for curls nice, ncurses output, der viser download status. Vi kan tavle tjære ved at påberåbe det uden -v således:

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

Og det er alt der er til det!

Top Tips:
Kommentarer: