Linux QuickTip stahování a un-taring v jednom kroku
Většinou, když stahuji něco, je to archiv souboru nějakého druhu - obvykle soubor tarball nebo zip. Může to být nějaký zdrojový kód pro aplikaci, která není součástí stromu Portage Gentoo, nějaká dokumentace pro interní firemní aplikaci nebo dokonce něco tak běžného jako nová instalace WordPress.
Tradiční způsob stahování a rozpoznání něčeho v terminálu by byl něco takového:
wget http://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
rm latest.tar.gz
Nebo možná kompaktnější podoba:
wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz
V každém případě je trochu neohrabaný. Jedná se o velmi jednoduchou operaci, silná skořápka, jako je bash, by měla umožnit provedení takového úkolu "šikmým" způsobem.
No, díky užitečnému malému příkazu "curl", můžeme skutečně provést tento nepořádek v jediném příkazu piped:
curl http://wordpress.org/latest.tar.gz | tar xvz
Žádné dočasné soubory, které byste se zbavili, neměli byste se mýlit s ampersandy. Stručně řečeno, velmi kompaktní, efektivní příkaz. Ve skutečnosti z teoretického hlediska může metoda zkadeření být rychlejší než spojený wget / tar / rm nepořádek, protože stdout potrubí použije RAM jako vyrovnávací paměť pokud je to možné, zatímco wget a tar (s přepínačem -f) musí číst / zapisovat přímo z disku.
Mimochodem, deht s volbou -v (způsobem, jakým používáme ve všech výše uvedených příkladech) vytiskne každý název souboru na stdout, protože každý je neupravovaný. To může vést ke zvukovému, ncursesovému výstupu, který zobrazuje stav stahování. Můžeme ticho smést tím, že ji vyvoláme bez toho, abychom:
curl http://wordpress.org/latest.tar.gz | tar xz
A to je vše, co je k tomu!