- wget è uno strumento da riga di comando GNU comandi per scaricare file e siti web tramite HTTP, HTTPS e FTP in Linux e altri sistemi.
- Il comando offre una moltitudine di opzioni: riprendi Download, limitare la velocità, lavorare in background, ricorsione e filtrare per tipo di file.
- Consente di clonare siti web, analizzare link non funzionanti e automatizzare attività tramite script e cron, controllando al contempo il consumo di larghezza di banda.
- È importante usare wget in modo responsabile, rispettando robot.txt quando appropriato e verificando URL e opzioni per impedire download indesiderati in blocco.

Se usi Linux quotidianamente, prima o poi avrai bisogno scaricare i file dal terminale in modo rapido e flessibileEd è qui che entra in gioco wget, un piccolo gioiello del progetto GNU che da decenni svolge silenziosamente il lavoro sporco.
Con solo poche opzioni, wget ti consente Scarica un singolo file, centinaia di file, interi siti web, contenuti tramite FTPLimita la larghezza di banda, riprendi i download interrotti, automatizza le attività con cron e molto altro ancora. Tutto senza finestre o procedure guidate: solo tu, la console e un comando potentissimo.
Cos'è esattamente il comando wget in Linux?
Il comando wget avvia il programma da riga di comando wget del progetto GNUProgettato per scaricare contenuti dalla rete utilizzando diversi protocolli. Il suo nome deriva da "World Wide Web" + "get", che significa "ottenere dal web".
Questo strumento è sviluppato in C portabile e distribuito come software liberoquindi funziona perfettamente su praticamente qualsiasi tipo di sistema Unix: Distribuzioni GNU/Linux, BSD e macOS che utilizzano strumenti aggiuntivi e persino in Windows tramite ambienti come Cygwin o la console Bash integrata di Ubuntu.
Con wget puoi Recupera file tramite HTTP, HTTPS e FTPe persino utilizzarlo con l'autenticazione quando un server richiede nome utente e password, sia per HTTP che per FTP. Inoltre, riconosce i reindirizzamenti, i certificati TLS e le tipiche risposte dei server web.
Uno dei suoi più grandi pregi è che i download sono non interattivowget non richiede di avere una sessione aperta sul computer. Puoi avviarlo da un copione, lasciare un cron job in esecuzione su un server remoto o utilizzarlo in background senza preoccuparsi della sessione SSH Si interrompe.
Nella maggior parte delle distribuzioni più diffuse come Debian, Ubuntu o Linux Mint wget è installato di defaultIn altri casi, è sufficiente scaricare il gestore pacchetti corrispondente e in un minuto sarà tutto pronto e funzionante.

Come installare wget su Linux e altri sistemi
In un tipico ambiente Linux, un semplice comando è tutto ciò che serve per Installa o verifica che wget sia disponibileAd esempio, in Ubuntu o Debian puoi fare qualcosa di semplice come:
Installazione rapida: sudo apt-get install wget
Dopo aver completato l'installazione, avrai il file binario. wget ready nel tuo PATHPuoi verificarlo con:
Controlla la versione: wget --version
In altre distribuzioni il gestore dei pacchetti cambierà, ma l'idea è la stessa: yum, dnf, pacman o zypper Permettono di installare wget dai repository ufficiali con un singolo comando.
Su macOS, il sistema non include wget di default, ma è possibile utilizzarlo. Homebrew per installare lo strumento della consoleUna volta configurato Brew, è sufficiente:
birra fatta in casa: brew install wget
Nell'ecosistema Windows tradizionale, non esiste un accesso così diretto a wget da simbolo del sistema classico, sebbene Cygwin e la console Ubuntu Bash su Windows 10/11 Includono wget e altre utility GNU. Se lavorate con il livello Linux di Windows, lo userete praticamente come in qualsiasi altra distribuzione.

Sintassi di base e opzioni più importanti di wget
La struttura generale del comando è molto semplice: wget seguito da opzioni e uno o più URLLa forma canonica sarebbe più o meno questa:
Format: wget [opciones] URL1 URL2 URL3 ...
Se non aggiungi altro, wget scaricherà il file specificato dall'URL e... Verrà salvato automaticamente nella directory di lavoro corrente. utilizzando lo stesso nome che ha sul server remoto.
La vera potenza del comando deriva dall'enorme numero di opzioni disponibili. Alcune delle più comunemente utilizzate nell'uso quotidiano sono:
- -co –continua: riprende un download interrotto, senza ricominciare da zero.
- -N: scarica il file solo se la copia remota è più recente di quella già presente sul disco.
- -t [numero]: indica quanti tentativi wget deve effettuare quando scarica un file prima di rinunciare.
- -w [secondi]: indica un'attesa tra download consecutivi per evitare di sovraccaricare il server.
- -r: attiva la modalità ricorsiva per seguire i collegamenti o attraversare le directory.
- -P [percorso]Seleziona la directory in cui desideri salvare i file scaricati.
- –limit-rate=[velocità]: limita la larghezza di banda consumata da wget (ad esempio, 200k).
Queste opzioni possono essere combinate per adatta il comportamento di wget esattamente a ciò di cui hai bisognoda un semplice download una tantum a veri e propri crawler di siti web o attività di backup regolari.
Esempi di base: download di uno o più file
L'uso più basilare di wget è scarica un singolo file nella cartella in cui ti troviAd esempio, per scaricare l'immagine ISO di una distribuzione Ubuntu, potresti eseguire qualcosa del genere:
Esempio rapido: wget http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Durante il download vedrai sullo schermo la percentuale completata, la dimensione totale, la velocità e il tempo empleadoCiò include la risoluzione DNS e la connessione al server. Una volta completato, il file sarà nella directory corrente con lo stesso nome del collegamento.
Se invece di un file vuoi Scarica più file contemporaneamente specificando tutti gli URL in un unico comandoBasta concatenare i link separati da spazi, anche mescolando i protocolli HTTP e FTP:
File multipli: wget http://ejemplo.com/programa.tar.gz ftp://otrositio.com/descargas/video.mpg
Inoltre, wget capisce determinati modelli di espansione nell'URLAd esempio, se su un server è presente una raccolta di immagini numerate da 1 a 50, è possibile procedere come segue:
Modello di espansione: wget http://example.com/images/{1..50}.jpg
Un altro modo molto pratico per gestire più download è Preparare un file di testo con un URL su ogni riga e poi dire a wget di leggere quella lista. Per esempio:
Crea elenco: nano archivos.txt
Entro files.txt scrivi qualcosa come:
http://ejemplo.com/programa.tar.gz
http://ejemplo.com/rpm/paquete.rpm
ftp://otrositio.com/descargas/distro.iso
Quindi devi solo eseguire:
Scarica dall'elenco: wget -i archivos.txt
Con opzione -iwget leggerà il file di testo e scaricherà ciascuno degli indirizzi elencati, perfetto per lasciare il computer in funzione in background mentre fai altro.
Cambia il nome della cartella e limita la velocità di download
Quando non si è interessati a preservare il nome originale del file remoto, è possibile utilizzare l'opzione -Oppure per rinominare il risultatoAd esempio, se si desidera salvare l'ISO precedente con un nome più breve:
Rinominare: wget -O ubuntu_amd64.iso http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Questo stesso trucco è molto utile quando vuoi sempre scaricare qualcosa con un nome fisso per sovrascriverlo negli script, come ad esempio di riserva tutti i giorni.
Se quello che vuoi è controllare il directory di destinazione in cui vengono salvati i file scaricatiÈ possibile utilizzare l'opzione -P seguita dal percorso:
Directory di destinazione: wget -P documentos/isos/ http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
In questo modo il file finirà in documenti/isos/ invece della directory correnteche è ottimo per tenere i download organizzati senza dover fare ulteriori mosse.
Un altro aspetto chiave è il consumo di banda. Wget consente Limitare la velocità per evitare di monopolizzare l'intera connessione.Questo è particolarmente rilevante su server o connessioni condivise. Ad esempio, per impostare un massimo di 500 KB/s:
Limite di velocità: wget --limit-rate=500k https://wordpress.org/latest.zip
Puoi anche specificare un valore come 50K, 2M, ecc., adattando la tariffa alle tue esigenzeIn questo modo puoi continuare a navigare o utilizzare altri servizi mentre file di grandi dimensioni vengono scaricati in background.
Riprendi i download, controlla i nuovi tentativi e lavora in background
Uno dei casi tipici è che tu interrompere la connessione o l'alimentazione si interrompe nel mezzo di una scarica di grandi dimensioniInvece di perdere tutti i dati scaricati, wget consente di riprendere il file da dove era stato interrotto con l'opzione -c:
Riprendi i download: wget -c http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso
Mentre il server supporta la ripresa dei download parziali, wget continuerà dal punto in cui si è fermatoSe non si utilizza -cy e il file esiste già, il programma lo salverà con il suffisso ".1" per evitare di sovrascrivere il file originale.
In ambienti con connessioni instabili o server fortemente sovraccarichi, è importante anche monitorare il numero di tentativi di downloadPer impostazione predefinita, wget effettua 20 tentativi, ma è possibile aumentare o diminuire tale valore con -t:
Controllo del tentativo: wget -t 50 http://ejemplo.com/pelicula.mpg
Se lo desideri, puoi anche usare -t inf in modo che wget continui a provare all'infinito finché non riesce a connettersi, cosa che può essere utile negli script in cui è prioritario non fallire.
Quando si gestiscono file di grandi dimensioni, è meglio eseguire il download in background. per poter chiudere il terminale o continuare a utilizzare quella sessionePer questo, Wget offre l'opzione -b:
Sullo sfondo: wget -b http://example.com/beefy-file.tar.gz
Utilizzando -b, il programma si "stacca" dal terminale e Registra i suoi progressi in un file chiamato wget-log all'interno della directory corrente. Puoi vedere come procede con:
Visualizza l'avanzamento: tail -f wget-log
Se desideri anche un report dettagliato dell'intero processo di download, ideale per il debug dei problemi, puoi reindirizzare l'output di wget a un file di registro utilizzando l'opzione -o:
Registro dettagliato: wget -o reporte.txt http://ejemplo.com/programa.tar.gz
Lavorare con server protetti e FTP usando wget
Molte risorse online non sono pubbliche e richiedono un nome utente e password per scaricare i fileWget sa come gestire questi ambienti aggiungendo le credenziali sulla riga di comando.
Ad esempio, su un server HTTP con autenticazione di base, potresti usare qualcosa del tipo:
Autenticazione HTTP: wget --http-user=admin --http-password=secreto http://ejemplo.com/archivo.mp3
Allo stesso modo, il comando funziona perfettamente con server FTP tradizionaliPer scaricare un file specifico da un server FTP privato, è sufficiente:
FTP con credenziali: wget --ftp-user=TU_USUARIO --ftp-password=TU_PASSWORD ftp://example.com/something.tar
Se quello che vuoi è prendere una directory completa da un server FTPÈ possibile combinare la modalità ricorsiva con i percorsi FTP:
Scarica la directory FTP: wget -r ftp://example.com/folder
Se aggiungi l'opzione –nessun genitore Assicurati che wget non acceda a directory superiori nell'albero FTP e si concentri solo sulla cartella specificata e sulle sue sottodirectory.
Scarica interi siti web per visualizzarli offline
Una delle caratteristiche più potenti di wget è la sua capacità di scaricare il contenuto di un intero sito web e poterlo visualizzare localmente Nessuna connessione a Internet. Può essere incredibilmente utile per lunghi viaggi, ambienti senza accesso alla rete o analisi di siti web offline.
Esempio avanzato: wget --mirror --convert-links --page-requisites --no-parent -P documentos/websites/ https://some-website.com
Qui, ogni opzione apporta un contributo molto specifico al processo di clonazione del sito web:
- -specchio: attiva una modalità progettata per i mirror, che combina la ricorsione profonda con la gestione dei timestamp.
- –convert-links: modifica i link interni per puntare ai file scaricati, consentendo la navigazione offline.
- –Page-requisites: include tutte le risorse necessarie affinché la pagina abbia un bell'aspetto (CSS, JavaScript, immagini, ecc.).
- –nessun genitore: evita di caricare in directory più alte, limitando il download all'ambito del sito a cui sei interessato.
- -P documenti/siti web/: indica la directory in cui verrà salvata l'intera struttura scaricata.
Una volta completato il download, potrai Apri l'indice principale con il tuo browser preferito e navigare nella copia come se fossi online. I file saranno organizzati nella cartella documenti/siti web/ con sottodirectory che replicano la struttura del server remoto.
Per alcuni siti è utile anche utilizzare –estensione html o l'abbreviazione -ECiò garantirà che tutti i documenti vengano salvati con l'estensione .html, anche se originariamente erano .php, .asp o .cgi, rendendo più semplice aprirli in seguito nei browser locali.
Individua i link non funzionanti e usa wget come web “spider”
Oltre a scaricare contenuti, wget può essere utilizzato come una sorta di Crawler leggero per valutare lo stato dei link di un sitoGrazie alla modalità spider, il programma esplora le pagine senza salvarle, limitandosi a controllare a cosa risponde il server.
Modalità ragno: wget -o wget-log -r -l 5 --spider http://example.com
In questa riga, ogni parametro svolge il suo ruolo:
- -o wget-log: invia tutto l'output al file wget-log per una successiva revisione a tuo piacimento.
- -r: attiva la ricorsione per seguire i link interni.
- -5: definisce la profondità massima di ricorsione in 5 livelli.
- -ragno: trasforma wget in uno spider che controlla i link ma non scarica i file.
Successivamente è possibile elaborare il file di registro per estrai rapidamente i link che restituiscono 404Un tipico esempio di comando per filtrarli sarebbe:
Filtro 404: grep -B 2 '404' wget-log | grep "http" | cut -d " " -f 4 | sort -u
In questo modo otterrai un elenco pulito degli URL problematici, ideale per gli amministratori di siti web che vogliono correggere reindirizzamenti o contenuti eliminati.
Recupera un sito web completo con opzioni avanzate
Ci sono scenari in cui vuoi Scarica un sito web con molto più controllo su ciò che wget mostra.Ad esempio, per analisi dettagliate, audit dei contenuti o query offline a lungo termine.
Download avanzato: wget -m -F -p -np -k -erobots=off -U mozilla --limit-rate=50K --wait=2 --html-extension sitioweb
Questa linea combina diversi parametri interessanti:
- -m: modalità mirror, equivalente a determinate combinazioni di ricorsione e timestamp.
- -F: forza il download anche se ci sono piccoli errori nelle risposte.
- -p: assicura che tutte le risorse ausiliarie per ogni pagina vengano scaricate.
- -np: nessun genitore, impedisce lo spostamento verso directory superiori durante la ricorsione.
- -k: converte i collegamenti in modo che puntino alla copia locale.
- -erobots=spento: ignora il file robots.txt del sito e non ne rispetta le restrizioni.
- -U mozilla: imposta una stringa user agent simile a quella di un browser Mozilla.
- –limit-rate=50K: limita la velocità a 50 KB/s per evitare di sovraccaricare la linea.
- –aspetta=2: introduce una pausa di 2 secondi tra richieste consecutive.
- –estensione-html: forza l'estensione .html su tutti i documenti scaricati.
Il risultato è una copia del sito molto completa e navigabile, progettato per la consultazione offline e l'analisi dettagliataTuttavia, è consigliabile tenere d'occhio lo spazio su disco, perché questo tipo di operazione può riempire gigabyte senza che ve ne accorgiate, soprattutto se la ricorsione è abilitata su un sito di grandi dimensioni.
Esempi estremi: filtraggio dei tipi di file e bypass dei robot
Wget si presta anche ad usi più “estremi”, come cercare solo determinati tipi di file in un lungo elenco di sitiUn esempio tipico è il download di file mp3 dagli indirizzi memorizzati in un file di testo:
Filtro mp3: wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off -i sitiosmp3.txt
Il comportamento di ciascuna opzione in questa combinazione è molto esemplificativo del potenziale di wget:
- -r -l1: ricorsione abilitata ma limitata a un singolo livello di sottodirectory.
- -H: consente di seguire i link verso domini diversi da quello principale (host span).
- -t1: un solo tentativo di connessione per URL; se fallisce, passa a quello successivo.
- -nsNon crea sottodirectory locali; salva tutti i file nello stesso posto.
- -N: rispetta la marca temporale del file originale e scarica solo se ci sono modifiche.
- -np: evita il caricamento nelle directory padre.
- -A.mp3: limita i download ai file con estensione .mp3.
- -erobots=spento: ignora le restrizioni di robots.txt per esplorare tutte le directory.
- -i sitiosmp3.txt: legge l'elenco iniziale dei siti da scansionare dal file sitiosmp3.txt.
Comandi come questi consentono il montaggio processi automatizzati che vengono eseguiti quotidianamente utilizzando cron, scaricando solo i nuovi file grazie all'opzione -N e mantenendo sempre aggiornato un repository locale.
Ulteriori opzioni utili e best practice di sicurezza
Oltre a tutto quanto sopra, wget incorpora altri parametri molto pratici per controllarne il comportamentoTra i più interessanti ci sono:
- -b: esegue il download in background, ideale per script o sessioni remote.
- -t 10: definisce un numero specifico di tentativi in caso di errori temporanei.
- –limit-rate=200k: regola la larghezza di banda massima per download su un valore specifico.
- -pQuando scarichi pagine HTML, trascina anche immagini, CSS e altre risorse.
- –convert-links: trasforma i collegamenti assoluti in collegamenti relativi per il lavoro offline.
Tuttavia, è consigliabile utilizzare wget con un minimo di attenzione per evitare di causare problemi legati alla sicurezza o al consumo di risorseEcco alcuni consigli di base:
- Controlla sempre l'URL prima di scaricare qualsiasi cosa, soprattutto se esegui il comando come radiceper evitare di scendere il malware o contenuti indesiderati.
- Comprendi le opzioni che utilizzi, in particolare la ricorsione (-r, -mirror, -H, -np) per evitare di scaricare più dati del previsto o di sovraccaricare un server.
- Controllo della ricorsione Per evitare di visualizzare siti di grandi dimensioni, modificare -ly -np aiuta a limitare l'ambito della scansione.
- Rispettare robots.txt ogni volta che è possibileA meno che non si abbia l'esplicito permesso di ignorarlo, contrassegna le aree del sito web che i proprietari preferiscono non esporre a spider e downloader.
- Limiti di velocità con –limit-rate Sono altamente consigliati nelle reti condivise per non disturbare gli altri utenti.
- Non disabilitare la convalida HTTPS A meno che tu non sappia veramente cosa stai facendo, i certificati vengono controllati per impostazione predefinita e rappresentano un importante livello di sicurezza.
L'intero set di funzionalità rende wget Un coltellino svizzero per scaricare contenuti su LinuxDal download di un semplice file con un breve comando alla clonazione di interi siti, al filtraggio di specifici tipi di file, alla ripresa di download interrotti, all'utilizzo di FTP o alla generazione di report sui link interrotti, tutto sempre dal terminale e con opzioni facilmente automatizzabili in script e cron job.
Scrittore appassionato del mondo dei byte e della tecnologia in generale. Adoro condividere le mie conoscenze attraverso la scrittura, ed è quello che farò in questo blog, mostrarti tutte le cose più interessanti su gadget, software, hardware, tendenze tecnologiche e altro ancora. Il mio obiettivo è aiutarti a navigare nel mondo digitale in modo semplice e divertente.