Linux QuickTip Pobieranie i rozpakowywanie w jednym kroku
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, dokumentacja wewnętrznej aplikacji korporacyjnej, a nawet coś tak przyziemnego jak nowa instalacja WordPressa.
Tradycyjny sposób pobierania i rozprowadzania czegoś w terminalu może 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 zwarta 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 umożliwić wykonanie tego zadania w bardziej "zręczny" sposób.
Cóż, dzięki przydatnemu niewielkiemu poleceniu "curl", możemy faktycznie wykonać powyższy bałagan w jednym, wypisanym oświadczeniu:
curl http://wordpress.org/latest.tar.gz | tar xvz
Nie ma plików tymczasowych, których można się pozbyć, nie bawiąc się amperandami. Krótko mówiąc, bardzo kompaktowa, wydajna komenda. W rzeczywistości, z teoretycznego punktu widzenia, metoda curl 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 każdą nazwę pliku na standardowe wyjście, ponieważ każda z nich jest nieuprawniona. Może to stać na drodze do ładnego pliku curl, ncurses pokazującego status 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!