Skip to main content

Linux QuickTip: Download e Un-tarring in un solo passaggio

Linux QuickTip: Download e Un-tarring in un solo passaggio

Geoffrey Carr

Il più delle volte, quando scarico qualcosa, si tratta di un archivio di file di qualche tipo - di solito un archivio di tarball o di file zip. Potrebbe trattarsi di un codice sorgente per un'app che non è inclusa nell'albero di Portage di Gentoo, della documentazione per un'app aziendale interna o anche di qualcosa di banale come una nuova installazione di WordPress.

Il modo tradizionale di scaricare e decomprimere qualcosa nel terminale sarebbe qualcosa del genere:

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

tar xvzf latest.tar.gz

rm latest.tar.gz

O forse la forma più compatta:

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

In entrambi i casi è un po 'maldestro. Questa è un'operazione molto semplice, una shell potente come bash dovrebbe permettere che tale attività venga eseguita in un modo più "slick".

Bene, grazie a un utile piccolo comando "arricciatura", possiamo effettivamente realizzare il pasticcio sopra in una sola dichiarazione in pipe:

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

Nessun file temporaneo da eliminare, niente problemi con la e commerciale. In breve, un comando estremamente compatto ed efficiente. Infatti, da un punto di vista teorico, il metodo di curl può essere più veloce del concatenato wget / tar / rm mess poiché le pipe stdout useranno la RAM come buffer, se possibile, mentre wget e tar (con l'opzione -f) devono leggere / scrivere direttamente da un disco.

Per inciso, tar con l'opzione -v (il modo in cui lo usiamo in tutti gli esempi precedenti) stampa ogni nome di file su stdout poiché ognuno di essi è non contrassegnato. Questo può intralciare l'uscita di Curl, che mostra lo stato del download. Possiamo silenziare tar invocandolo senza -v così:

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

E questo è tutto ciò che c'è da fare!

Link
Plus
Send
Send
Pin