GNU/Linux: scaricare file da internet con wget

wget è un tool molto utile per scaricare singoli file, pagine web o interi siti dalla rete. Per gli esempi uso un piccolo sito di prova che ho fatto apposta come cavia, raggiungibile su Internet: https://esempi.thelinuxnerd.it. Potete usarlo anche voi per fare le vostre prove. Gli esempi e gli script sono anche su GitHub, nel repository the-linux-nerd/esempi-linux.

Scaricare un file

L’uso più semplice: si passa a wget l’URL esatto della risorsa che si vuole scaricare, che sia un’immagine di un sistema operativo, un software o qualunque altra cosa. Dal browser si usa “copia indirizzo link”, poi si incolla nel terminale:

wget https://esempi.thelinuxnerd.it/esempio.tar.gz

Salvare con un altro nome: -O

Se vogliamo salvare il file con un nome diverso da quello che ha sul sito, si usa l’opzione -O maiuscola:

wget -O prova.tar.gz https://esempi.thelinuxnerd.it/esempio.tar.gz

Ora abbiamo il file due volte, con due nomi diversi. Notate che il comportamento predefinito di wget, con -O, è sovrascrivere il file di destinazione: comodo se dobbiamo scaricare più volte un file con lo stesso nome.

Riprendere un download interrotto: -c

Una cosa molto comoda: wget può riprendere un download interrotto. Rilanciamo il download e simuliamo una caduta di connessione con Ctrl+C: ci siamo fermati, per esempio, al 24%.

wget https://esempi.thelinuxnerd.it/esempio.tar.gz

Per riprendere da dove si era arrivati si usa -c (continue):

wget -c https://esempi.thelinuxnerd.it/esempio.tar.gz

Nella barra di avanzamento il simbolo + al posto dell’uguale indica la parte già scaricata e non riscaricata.

Scaricare da un elenco: -i

Possiamo anche dare a wget un file con un elenco di URL, uno per riga, che vengono scaricati in sequenza. Creiamo un file lista.txt e mettiamoci dentro due indirizzi: il file di esempio e un’immagine presente sul sito.

nano lista.txt

Nel file ci vanno due URL, ad esempio:

https://esempi.thelinuxnerd.it/esempio.tar.gz
https://esempi.thelinuxnerd.it/happy-hacking.png

Poi:

wget -i lista.txt

Nella cartella troviamo sia esempio.tar.gz sia l’immagine.

Risorse protette da password

Sul sito di prova c’è un file in una cartella protetta da nome utente e password: dal browser verrebbe chiesto un login. Con wget si usano le opzioni –user e –password. Nel sito di prova le credenziali sono pubbliche, perché è fatto apposta, e le mostro nel video: utente happy, mentre qui scrivo un segnaposto al posto della password.

wget --user=happy --password=la-tua-password \
  https://esempi.thelinuxnerd.it/secret/happy-hacking.tar.gz

Il file viene scaricato regolarmente.

Scaricare un intero sito: -m

L’ultimo uso: scaricare una pagina web o un intero sito. wget ha moltissime opzioni per farlo e non voglio trattarle tutte; vediamo la modalità più semplice, il mirroring, con -m. Questa volta si passa l’indirizzo dell’intero sito:

wget -m https://esempi.thelinuxnerd.it

wget scarica tutte le risorse e tutte le pagine. Nella cartella ne troviamo una con il nome del sito, e dentro ci sono il file tar.gz linkato dalla pagina, l’immagine Happy Hacking, l’index.html con il codice HTML del sito e il foglio di stile CSS.

ls esempi.thelinuxnerd.it

Con wget -m, insomma, si fa il mirroring di una pagina web o di un intero sito in modo molto facile.

Per finire

Questo è sufficiente a cominciare a sperimentare con wget. Se volete un approfondimento sulle altre opzioni, fatemelo sapere nei commenti. La documentazione ufficiale è sul sito del progetto GNU.

man wget

Link e risorse

Sostieni il canale

📚 Bibliografia:
Linux per Principianti — https://amzn.to/3QkYpWu
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!