Väčšinu času, keď som niečo stiahol, je to nejaký archív súborov - zvyčajne súbor tarball alebo zip. Môže to byť nejaký zdrojový kód pre aplikáciu, ktorá nie je zahrnutá do stromu Portage produktu Gentoo, nejaká dokumentácia pre internú firemnú aplikáciu alebo dokonca niečo také svetské ako nová inštalácia WordPress.
Tradičný spôsob sťahovania a neoznačenia niečoho v termináli by bol niečo také:
wget https://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
rm latest.tar.gz
Alebo možno aj kompaktnejšia forma:
wget https://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz
Či tak alebo onak je trochu nemotorné. Jedná sa o veľmi jednoduchú operáciu, silný shell ako bash by mal dovoliť, aby sa takáto úloha vykonávala "lepším" spôsobom.
No, vďaka užitočnému malému príkazu "curl", môžeme skutočne dosiahnuť neporiadok vyššie len v jednom piped vyhlásenie:
curl https://wordpress.org/latest.tar.gz | tar xvz
Žiadne dočasné súbory, ktoré by ste sa zbavili, nemali by ste sa pochybovať s ampersandmi. Stručne povedané, veľmi kompaktný, efektívny príkaz. V skutočnosti z teoretického hľadiska môže byť metóda zakrivenia rýchlejšia ako spojený wget / tar / rm mess, pretože stdout potrubia použije RAM ako vyrovnávaciu pamäť, ak je to možné, zatiaľ čo wget a tar (s prepínačom -f) musia čítať / písať priamo z disku.
Mimochodom, decht s voľbou -v (spôsob, akým ho používame vo všetkých vyššie uvedených príkladoch) vytlačí každý názov súboru na stdout, pretože každý z nich je neoznačený. To môže byť spôsobené pekným, ncurses výstupom, ktorý zobrazuje stav sťahovania. Môžeme tlčiť decht tým, že ho vyvoláme bez toho, aby sme:
curl https://wordpress.org/latest.tar.gz | tar xz
A to je všetko, čo je k tomu!