1 01/11/2026 8 min

Se devi scaricare file da terminale su Linux, wget resta uno degli strumenti più comodi da tenere a portata di mano. Non fa solo download “semplici”: sa seguire redirect, riprendere trasferimenti interrotti, limitare la banda, lavorare in background e persino scaricare interi contenuti statici quando serve. In pratica, è il classico comando che usi per operazioni veloci ma anche per piccoli flussi di automazione, senza dover aprire un browser o ricorrere a tool più complessi.

Qui sotto trovi 8 comandi utili, con esempi realistici e qualche nota pratica su quando conviene usarli. I comandi sono pensati per una shell Linux standard; se la tua distribuzione non include wget di default, installarlo è semplice con il gestore pacchetti della tua distro.

1. Scaricare un file con il nome originale

Il caso base è il più semplice: scarichi un file e lasci che wget mantenga il nome remoto. È utile quando devi prendere un archivio, un binario o un documento pubblicato via HTTP/HTTPS.

Comando:

wget https://example.com/file.zip

In questo caso il file viene salvato nella directory corrente. Se vuoi verificare subito l’esito, controlla che il file sia presente con dimensione coerente rispetto a quella attesa dal server o dalla pagina di download.

Se il sito espone un nome diverso tramite intestazioni HTTP, wget di solito conserva comunque il nome dell’URL, a meno che tu non usi opzioni specifiche per rinominarlo. È il comportamento più prevedibile per script e procedure ripetibili.

2. Salvare con un nome personalizzato

Quando il nome remoto è poco chiaro, troppo lungo o contiene parametri scomodi, puoi decidere tu come salvare il file con -O. È una scelta comoda anche nei test, perché evita di accumulare file con nomi poco leggibili.

wget -O report.pdf https://example.com/download?id=123

Qui il contenuto viene scritto in report.pdf anche se l’URL non contiene un nome file “pulito”. Attenzione però: se il download fallisce a metà, potresti ritrovarti un file incompleto con il nome già assegnato. Per questo, in contesti operativi, conviene verificare sempre la dimensione finale o l’hash se disponibile.

3. Riprendere un download interrotto

Uno degli usi più pratici di wget è la ripresa di un trasferimento interrotto. Se la connessione cade o chiudi la sessione SSH mentre un file grande è ancora in corso, puoi ripartire dal punto in cui ti sei fermato con -c.

wget -c https://example.com/iso/linux.iso

Il comportamento corretto dipende dal server: deve supportare le richieste di ripresa parziale. Se il server non le supporta, il comando può ricominciare da zero o non riprendere affatto in modo utile. In questi casi, il primo indizio è nel log di output: cerca messaggi relativi a Range o al riavvio del download.

È una funzione da usare quasi sempre quando il file è grande e la linea non è affidabile. Riduce tempo perso e traffico inutilizzato.

4. Scaricare in background con log dedicato

Quando il download può richiedere tempo, wget può andare in background con -b. È utile su server remoti, sessioni SSH lunghe o ambienti in cui non vuoi tenere aperta la shell per minuti o ore.

wget -b https://example.com/archive.tar.gz

Il comando crea un file di log, in genere wget-log, dove trovi lo stato del trasferimento. Questo rende più semplice controllare il progresso senza lasciare il terminale occupato. Se vuoi una telemetria più ordinata, puoi anche reindirizzare l’output a un file dedicato, ma per la maggior parte dei casi il log predefinito basta.

È un’opzione comoda quando devi scaricare file pesanti su macchine gestite da remoto, ma va ricordato un limite: se la sessione o il sistema si interrompono bruscamente, il processo può fermarsi. Per download critici, meglio abbinarlo a un ambiente più stabile o a un job scheduler.

Se non vuoi saturare la banda disponibile, puoi limitare la velocità con --limit-rate. È molto utile su server condivisi, connessioni lente o quando vuoi evitare che un download impatti altri servizi.

wget --limit-rate=500k https://example.com/video.mp4

In questo esempio il trasferimento viene limitato a circa 500 KB/s. La misura è pratica, non da laboratorio: il valore reale può oscillare in base a latenza, congestione e risposta del server. Se vuoi un comportamento più prevedibile in produzione o in un ambiente multiutente, questa opzione è spesso più utile di quanto sembri.

Se il file è grande e il collegamento è condiviso con altri servizi, limitare la velocità è spesso una forma di igiene operativa, non un capriccio.

6. Seguire i redirect HTTP

Molti download moderni non puntano direttamente al file finale: passano da redirect temporanei, CDN o pagine intermedie. wget segue i redirect in modo automatico nella maggior parte dei casi, ma puoi anche controllare meglio il comportamento con opzioni dedicate.

wget --max-redirect=10 https://example.com/download

Questa opzione è utile quando vuoi evitare loop di redirect o quando stai diagnosticando una catena di reindirizzamenti troppo lunga. Se il server sbaglia configurazione, il sintomo tipico è un ciclo ripetuto o un messaggio di errore che segnala il superamento del numero massimo consentito.

Per capire cosa succede davvero, a volte conviene attivare l’output verboso con -v. In fase di troubleshooting, vedere dove il server ti sposta è spesso più utile del semplice risultato finale.

Se hai una lista di URL, wget può leggere i link da un file di testo. È una delle funzioni più sottovalutate, perché trasforma un’operazione ripetitiva in un batch semplice e leggibile.

wget -i urls.txt

Nel file urls.txt metti un URL per riga. È una soluzione pratica per scaricare pacchetti, immagini, documentazione o archivi distribuiti su più indirizzi. Se vuoi evitare errori silenziosi, conviene preparare la lista in modo pulito e controllare che ogni riga contenga un URL valido e completo.

Per esempio:

https://example.com/file1.zip
https://example.com/file2.zip
https://example.com/file3.zip

Su directory grandi o flussi ripetuti, questo approccio è molto più robusto che lanciare più download manualmente uno per uno.

La funzione più potente, ma anche quella da usare con più attenzione, è il download ricorsivo. wget può seguire i link e scaricare una parte di sito, utile per mirror statici, documentazione o contenuti pubblici che vuoi conservare localmente.

wget -r -np -k -p https://example.com/docs/

Le opzioni qui hanno ruoli distinti:

  • -r abilita la modalità ricorsiva;
  • -np evita di risalire alle directory padre;
  • -k converte i link per l’uso locale;
  • -p scarica anche le risorse necessarie alla pagina, come CSS e immagini.

È una combinazione molto utile per archiviare documentazione o sezioni statiche di un sito, ma non va usata con leggerezza su ambienti che non controlli. Dal punto di vista operativo, il rischio è creare carico inutile sul server o recuperare più contenuti del previsto. Prima di lanciare un mirror, conviene sempre verificare le condizioni d’uso del sito e limitare il perimetro con precisione.

In più, il ricorsivo non è la soluzione universale per siti moderni fortemente dinamici: se i contenuti dipendono da JavaScript, wget non li renderizza come farebbe un browser. Per questo funziona bene su contenuti statici, molto meno su applicazioni web complesse.

Oltre agli 8 comandi principali, ci sono alcune opzioni che tornano spesso nella pratica quotidiana. Non sono indispensabili per iniziare, ma fanno la differenza quando usi wget con regolarità.

  • -q riduce l’output a schermo; utile negli script.
  • -v aumenta la verbosità; utile per il debug.
  • --no-check-certificate disattiva il controllo del certificato, ma va evitato salvo casi di test molto specifici e consapevoli, perché abbassa la sicurezza della connessione.
  • -U imposta lo user agent; può servire se un server tratta in modo diverso client automatici e browser.
  • --tries= regola i tentativi di retry, utile su linee instabili.

Tra queste, quella da maneggiare con più cautela è --no-check-certificate: può aiutare a capire se il problema è davvero il certificato TLS, ma non dovrebbe diventare una scorciatoia abituale. Se lo usi, fallo solo per isolare un guasto e poi correggi la causa reale: certificato scaduto, chain incompleta o hostname non coerente.

Quando lavori in modo operativo, conviene ragionare così: prima identifichi l’URL giusto, poi scegli se ti serve un nome personalizzato, se il download può essere ripreso, se va limitata la banda e se ci sono redirect. In molti casi il flusso minimo è questo:

  1. verificare l’URL con il browser o con la documentazione del fornitore;
  2. scaricare con wget usando il nome originale;
  3. riprendere con -c se il file è grande;
  4. usare --limit-rate se l’impatto sulla rete conta;
  5. controllare il risultato con dimensione file, checksum o log.

Questa sequenza evita molti errori banali: file incompleti, nomi confusi, saturazione di banda e download duplicati. In un ambiente Linux, è uno di quei piccoli automatismi che migliorano subito la gestione quotidiana.

wget è perfetto per download diretti, automatizzabili e ripetibili. È meno adatto quando il sito richiede autenticazione complessa, token dinamici, sessioni browser o contenuti generati lato client. In quei casi, strumenti diversi o una procedura più specifica possono essere più appropriati.

Se invece il tuo obiettivo è scaricare un file, riprendere un trasferimento, gestire redirect o costruire un piccolo workflow da shell, wget rimane uno strumento essenziale. Non è appariscente, ma fa bene il suo lavoro e continua a essere affidabile proprio perché è semplice.