Pagina principala » HOWTO » Linux QuickTip Descărcarea și dezarhivarea într-un singur pas

    Linux QuickTip Descărcarea și dezarhivarea într-un singur pas

    De cele mai multe ori, atunci când descarc ceva este o arhivă de fișiere de un fel - de obicei un fișier tarball sau zip. Acesta ar putea fi un cod sursă pentru o aplicație care nu este inclusă în arborele Portage al lui Gentoo, o anumită documentație pentru o aplicație internă corporativă sau chiar ceva la fel de banal ca o nouă instalare WordPress.

    Modul tradițional de a descărca și de a descoperi ceva în terminal ar fi ceva de genul:

    wget http://wordpress.org/latest.tar.gz

    tar xvzf latest.tar.gz

    rm latest.tar.gz

    Sau poate forma mai compactă:

    wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz

    În orice caz, este un pic stîngace. Aceasta este o operație foarte simplă, o cochilină puternică, cum ar fi bash, ar trebui să permită o astfel de sarcină să fie efectuată într-o manieră mai "slick".

    Ei bine, datorită unei comenzi puțin utile "curl", putem realiza de fapt mizeria de mai sus într-o singură declarație piped:

    curl http://wordpress.org/latest.tar.gz | tar xvz

    Nu există fișiere temporare pentru a scăpa, fără a fi încurcate cu ampersands. Pe scurt, o comandă extrem de compactă și eficientă. De fapt, dintr-un punct de vedere teoretic, metoda curl poate fi mai rapidă decât mizeria concatenată wget / tar / rm deoarece tuburile stdout vor folosi RAM ca tampon dacă este posibil, în timp ce wget și tar (cu comutatorul -f) trebuie să citească / scrie direct de pe un disc.

    De altfel, gudronul cu opțiunea -v (modul în care îl folosim în toate exemplele de mai sus) tipărește fiecare nume de fișier în stdout, deoarece fiecare dintre ele nu este interpretat. Acest lucru poate fi în calea de ieșire frumos, ncurses curl arată starea de descărcare. Putem liniști gura prin invocarea ei fără -v astfel:

    curl http://wordpress.org/latest.tar.gz | tar xz

    Și asta e totul pentru asta!