Startpagina » hoe » Linux QuickTip Downloaden en niet-targeten in één stap

    Linux QuickTip Downloaden en niet-targeten in één stap

    Meestal, wanneer ik iets download, is het een soort bestandsarchief - meestal een tarball of een zip-bestand. Dit kan een broncode zijn voor een app die niet is opgenomen in Gentoo's Portage-structuur, enige documentatie voor een interne zakelijke app of zelfs iets zo alledaags als een nieuwe WordPress-installatie.

    De traditionele manier om iets in de terminal te downloaden en untarring zou ongeveer zo zijn:

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

    tar xvzf latest.tar.gz

    rm latest.tar.gz

    Of misschien de compactere vorm:

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

    Hoe dan ook is een beetje onhandig. Dit is een zeer eenvoudige handeling, een krachtige shell zoals bash zou het mogelijk moeten maken dat een dergelijke taak op een meer "gladde" manier wordt uitgevoerd.

    Welnu, dankzij een handige kleine opdracht "curl", kunnen we de puinhoop hierboven bereiken in slechts één woordspeling:

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

    Geen tijdelijke bestanden om van af te komen, geen gedoe met ampersands. Kortom, een zeer compact, efficiënt commando. In feite kan de curl-methode vanuit een theoretisch standpunt sneller zijn dan de aaneengeschakelde wget / tar / rm puinhoop, omdat stdout piping RAM als buffer als mogelijk zal gebruiken, terwijl wget en tar (met de -f switch) moeten lezen / schrijven rechtstreeks vanaf een schijf.

    Overigens, tar met de optie -v (de manier waarop we het in alle bovenstaande voorbeelden gebruiken) drukt elke bestandsnaam af op stdout als elke niet is getarget. Dit kan de manier van krullen aardig in de weg zitten en geeft de uitvoer weer die de downloadstatus toont. We kunnen het zwijgen opheffen door het aan te roepen zonder -v dus:

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

    En dat is alles wat er is!