W większości przypadków, gdy coś pobieję, jest to jakieś archiwum plików - zwykle plik archiwum lub plik zip. Może to być kod źródłowy aplikacji, która nie jest zawarta w drzewie Portage Gentoo, dokumentacji wewnętrznej aplikacji korporacyjnej, a nawet czegoś tak przyziemnego jak nowa instalacja WordPress.
Tradycyjny sposób pobierania i rozprowadzania czegoś w terminalu wygląda następująco:
wget http://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
rm latest.tar.gz
A może bardziej kompaktowa forma:
wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz
Tak czy inaczej jest trochę niezgrabny. Jest to bardzo prosta operacja, potężna powłoka, taka jak bash, powinna pozwolić na wykonanie tego zadania w bardziej "zręczny" sposób.
Cóż, dzięki przydatnemu niewielkiemu poleceniu "curl", możemy faktycznie osiągnąć powyższy bałagan w jednym, wypisanym oświadczeniu:
curl http://wordpress.org/latest.tar.gz | tar xvz
Żadnych plików tymczasowych, których można się pozbyć, żadnych problemów z amperandami. Krótko mówiąc, bardzo kompaktowa, wydajna komenda. W rzeczywistości, z teoretycznego punktu widzenia, metoda zwijania może być szybsza niż połączony błąd wget / tar / rm, ponieważ standardowe wyprowadzenia używają RAM jako bufora, jeśli to możliwe, podczas gdy wget i tar (z przełącznikiem -f) muszą czytać / zapisywać bezpośrednio z dysku.
Nawiasem mówiąc, tar z opcją -v (sposób w jaki używamy go we wszystkich powyższych przykładach) wypisuje nazwę każdego pliku na standardowe wyjście, ponieważ każdy z nich jest nieuprawniony. Może to stać na drodze do ładnych plików curl, ncurses pokazujących stan pobierania. Możemy wyciszyć tar poprzez wywołanie go bez -v w ten sposób:
curl http://wordpress.org/latest.tar.gz | tar xz
I to wszystko, co do tego należy!