Linux QuickTip Nedlasting og un-tarring i ett trinn
Mesteparten av tiden, når jeg laster ned noe, er det et filarkiv av noe slag - vanligvis en tarball eller en zip-fil. Dette kan være noen kildekoden for en app som ikke er inkludert i Gentoos Portage-tre, noe dokumentasjon for en intern bedriftens app, eller til og med noe som er vanlig som en ny WordPress-installasjon.
Den tradisjonelle måten å laste ned og untarring noe i terminalen ville være noe slikt:
wget http://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
rm latest.tar.gz
Eller kanskje mer kompakt form:
wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz
Uansett er det litt klumpete. Dette er en veldig enkel operasjon, et kraftig skall som bash bør tillate en slik oppgave å bli utført på en mer "glatt" måte.
Vel, takket være en nyttig liten kommando "krølle", kan vi faktisk oppnå rotet ovenfor i bare en piped-setning:
krølle http://wordpress.org/latest.tar.gz | tjære xvz
Ingen midlertidige filer for å kvitte seg med, ikke rote rundt med ampersands. Kort sagt, en svært kompakt og effektiv kommando. Faktisk, fra et teoretisk synspunkt, kan krølle-metoden være raskere enn det sammenkoblede wget / tar / rm-rotet da stdout piping vil bruke RAM som buffer hvis mulig, mens wget og tjære (med -f-bryteren) må lese / skrive direkte fra en disk.
Forresten tar tjære med -v-alternativet (måten vi bruker det på i alle de ovennevnte eksemplene) ut hvert filnavn til stdout da hver er ubetjent. Dette kan komme i vei med curls fine, ncurses-utgang som viser nedlastingsstatus. Vi kan tåle tjære ved å påkalle den uten -v således:
krølle http://wordpress.org/latest.tar.gz | tar xz
Og det er alt der er til det!