Linux QuickTip Download og un-tarring i et trin
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
tjære 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 lidt 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:
krølle http://wordpress.org/latest.tar.gz | tjære 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:
krølle http://wordpress.org/latest.tar.gz | tjære xz
Og det er alt der er til det!