Guida alle tecnologie

Guida completa: risolvere “wget: command not found” e usare wget su Windows e Mac

10 min read Strumenti CLI Aggiornato 05 Oct 2025
wget: installare, risolvere errori e usare su Windows e Mac
wget: installare, risolvere errori e usare su Windows e Mac

Se ricevi l’errore “wget: command not found” su Windows o macOS, significa che wget non è installato o non è raggiungibile dalla variabile PATH. Questa guida spiega come verificare l’installazione, installare wget su Windows (metodi manuali, Chocolatey, Scoop) e su macOS (Homebrew), mostra i comandi più utili con esempi pratici, alternative come curl e PowerShell, checklist di sicurezza e procedure di troubleshooting. Include anche best practice per crawl responsabili e scenari d’uso comuni.

Prompt dei comandi di Windows 10 su schermo

Microsoft Windows Command Prompt (Prompt dei comandi) offre molto più di quanto si pensi: dall’amministrazione di sistema al download di file senza interfaccia grafica. Uno strumento frequentemente usato è wget, un downloader da riga di comando che supporta HTTP, HTTPS e FTP. Un problema comune è l’errore “wget: command not found”; questa guida completa ti aiuta a risolverlo e a usare wget in modo sicuro ed efficace.

Errore 'wget: command not found' nel Prompt di Windows

Che cos’è wget e a cosa serve

Wget è un programma da riga di comando che scarica contenuti dal web senza interfaccia grafica. È utile per scaricare singoli file, interi siti in modalità ricorsiva, sitemap, file XML e altro. Supporta protocolli come HTTP, HTTPS e FTP.

Definizione in una riga: wget è un downloader da riga di comando progettato per trasferimenti affidabili e ripetibili di contenuti web.

Funzioni pratiche:

  • Download ricorsivo di directory e sottodirectory (utile per mirroring di siti).
  • Scarico automatico delle risorse richieste dalla pagina (immagini, CSS, JS) per renderla fruibile offline.
  • Personalizzazione dell’User-Agent per testare come risponde un server a diversi client.
  • Limiti di velocità e attese per evitare sovraccarichi del server.

Importante: usare wget per scaricare interi siti può caricare pesantemente un server; rispetta il file robots.txt e le policy del sito.

Verificare se wget è installato

Come controllare su Windows

  1. Premi il tasto Windows.
  2. Digita cmd e premi Invio per aprire il Prompt dei comandi.
  3. Esegui uno dei comandi seguenti:
wget --version
wget -V

Se wget è installato, verrà mostrata la versione e alcune informazioni sul build. Se appare “wget: command not found” o “‘wget’ non è riconosciuto come comando interno o esterno”, wget non è presente nella PATH.

Come controllare su macOS

Apri Terminale e digita:

wget --version

macOS non include wget di default; è comune installarlo via Homebrew.

Installare wget su Windows

Ci sono più modi per aggiungere wget a Windows. Scegli quello adatto al tuo ambiente (amministratore, politica aziendale, preferenze personali).

Opzioni consigliate:

Metodo 1 — Usare Chocolatey (raccomandato per amministratori e power user)

Chocolatey è un package manager per Windows che facilita installazioni e aggiornamenti.

  1. Apri PowerShell come amministratore.
  2. Installa Chocolatey (se non è già presente):
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
  1. Installa wget:
choco install wget -y
  1. Chiudi e riapri il Prompt dei comandi o PowerShell e verifica:
wget --version

Vantaggi: gestione centrale degli aggiornamenti e coerenza tra macchine.

Metodo 2 — Usare Scoop (alternativa leggera)

Scoop è un altro package manager per Windows focalizzato su strumenti CLI.

  1. Apri PowerShell (non serve eseguirlo come amministratore in molti casi).
  2. Installa Scoop:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
  1. Installa wget:
scoop install wget
  1. Verifica la versione:
wget --version

Metodo 3 — Installazione manuale (quando non si possono usare package manager)

  1. Scarica una build per Windows (file eseguibile .exe o binario) da una fonte attendibile come il repository GNU o porting affidabili (es. la build da ezwinports o il sito GNU quando disponibile per Windows).
  2. Estrai l’eseguibile wget.exe.
  3. Copia wget.exe in C:\Windows\System32 o in una cartella già nella PATH.

Nota: copiare direttamente in System32 richiede privilegi di amministratore. In alternativa, puoi creare una cartella dedicata (es. C:\tools) e aggiungerla alla variabile PATH di sistema.

Per aggiungere una cartella alla PATH su Windows 10/11:

  1. Premi Win, digita “Variabili d’ambiente” e apri “Modifica le variabili d’ambiente per il tuo account”.
  2. Sotto “Variabili utente” seleziona PATH e clicca Modifica.
  3. Aggiungi il percorso della cartella (es. C:\tools) e salva.
  4. Riavvia il Prompt dei comandi e verifica con wget --version.

Sicurezza: scarica binari solo da fonti ufficiali o repository firmati. Evita eseguibili non verificati.

Installare wget su macOS

La via più semplice è Homebrew.

  1. Installa Homebrew (se non presente):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Installa wget:
brew install wget
  1. Verifica:
wget --version

Alternativa: usare MacPorts se preferisci quell’ecosistema.

Sintassi base e opzioni comuni di wget

Forma generale:

wget [OPZIONE]... [URL]...

Esempi pratici e spiegazioni:

Scaricare un singolo file

wget https://example.com/robots.txt

Scarica robots.txt nella cartella corrente.

Scaricare in una cartella specifica

Sostituisci con la cartella di destinazione.

wget -P  https://example.com/sitemap.xml

Rinominare il file scaricato

wget -O nuovo-nome.html https://example.com/file.html

Definire lo User-Agent

wget --user-agent="Mozilla/5.0 (compatible; MyBot/1.0)" https://example.com/file.html

Usare uno user-agent personalizzato è utile per il debug, ma non usarne uno ingannevole per aggirare restrizioni.

Simulare il comportamento di Googlebot

Esempio di user-agent complesso (per test interni):

wget --user-agent="Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/path

Nota legale: impersonare bot può violare i termini di servizio. Usalo solo per test legittimi su siti che gestisci o con permesso.

Scaricare robots.txt solo se è cambiato

  1. Per visualizzare gli header e registrare la data: -S
wget -S https://example.com/robots.txt
  1. Per scaricare solo se il file remoto è più recente del locale: -N
wget -N https://example.com/robots.txt

Convertire i link per uso locale

wget --convert-links https://example.com/path

Questa opzione riscrive i link nelle pagine scaricate per puntare alle copie locali.

Replicare una singola pagina per uso offline

wget -E -H -k -K -p --convert-links https://example.com/path

Breve spiegazione delle opzioni principali:

  • -E: aggiusta estensioni (.html)
  • -H: abilita il download da host diversi
  • -k: converti i link
  • -K: mantieni backup dei file originali
  • -p: scarica tutte le risorse necessarie (immagini, CSS, JS)

Scaricare da una lista di URL

Crea un file urls.txt con una URL per riga, poi:

wget -i urls.txt

Nota: l’opzione è -i (minuscola) per file di input.

Limitare la velocità e inserire attese per crawling responsabile

  • –wait=1 : aspetta 1 secondo tra richieste
  • –limit-rate=10K : limita la velocità a 10 KB/s

Esempio:

wget --wait=1 --limit-rate=10K https://example.com/largefile.zip

Scaricare l’intero sito in modalità ricorsiva (usare con cautela)

Comando completo di esempio:

wget --recursive --page-requisites --adjust-extension --span-hosts --wait=1 --limit-rate=10K --convert-links --restrict-file-names=windows --no-clobber --domains example.com --no-parent https://example.com

Spiegazione rapida delle opzioni più importanti:

  • –recursive: segue i link fino a una profondità limitata (di default 5)
  • –page-requisites: scarica risorse necessarie alla pagina
  • –adjust-extension: salva con estensione .html
  • –span-hosts: segue risorse su altri host
  • –no-clobber: evita di sovrascrivere file già scaricati
  • –domains example.com: limita la scansione al dominio indicato
  • –no-parent: non risale alle directory superiori

Avviso: rispettare robots.txt e le norme del sito; limitare la profondità e la velocità per non sovraccaricare i server.

Alternative a wget e quando usarle

  • curl: molto usato per trasferimenti singoli e scripting; più flessibile per operazioni HTTP avanzate (intestazioni, autenticazione). Non è progettato per download ricorsivi.
  • PowerShell Invoke-WebRequest / Invoke-RestMethod: ottime alternative native su Windows per semplici download e integrazione con script PowerShell.
  • browser con estensioni di download: per utenti non tecnici che preferiscono interfacce grafiche.

Scegli wget quando ti serve:

  • mirroring o download ricorsivi
  • conversione automatica dei link per uso offline
  • gestione batch tramite file di testo

Scegli curl quando ti serve:

  • controllo preciso di headers e metodi HTTP
  • integrazione con API o script che richiedono autenticazione avanzata

Checklist operativa per installazione e verifica (ruolo-based)

Per System Administrator:

  • Verificare policy aziendali sui package manager
  • Preferire Chocolatey o Scoop per installazioni centralizzate
  • Controllare integrità del binario (firma o checksum)
  • Aggiornare wget regolarmente tramite il package manager

Per Sviluppatore:

  • Verificare che wget sia nella PATH
  • Testare comandi base (download singolo, -O, -P)
  • Usare file di log e -nv per output non verboso durante scripting

Per SEO/Analista Web:

  • Usare –wait e –limit-rate per non sovraccaricare
  • Rispettare robots.txt
  • Usare User-Agent trasparente per i test

Sicurezza, privacy e conformità (GDPR)

  • Dati personali: se scarichi pagine o contenuti che contengono dati personali, valuta le implicazioni legali e il rispetto del GDPR. Scaricare dati da siti terzi può richiedere basi legali e misure di minimizzazione.
  • Protezione delle credenziali: evita di inserire credenziali in chiaro nella riga di comando; usa file di configurazione con permessi limitati se necessario.
  • Integrità dei binari: scarica wget da fonti ufficiali o repository firmati; controlla checksum quando disponibile.

Troubleshooting comune

Problema: “wget: command not found” dopo aver installato wget

  • Verifica che la cartella contenente wget.exe sia nella PATH.
  • Chiudi e riapri il terminale dopo aver modificato la PATH.
  • Su Windows, verifica eventuali policy di sicurezza o software antivirus che bloccano l’esecuzione.

Problema: Permessi negati durante il download

  • Controlla i permessi della cartella di destinazione.
  • Se stai scrivendo in una cartella di sistema, avvia il terminale come amministratore.

Problema: Scaricamento incompleto o timeout

  • Usa –wait e –limit-rate per ridurre il carico e prevenire blocchi dal server.
  • Prova con –retry-connrefused e –tries=N per aumentare il numero di tentativi.

Esempio di retry:

wget --tries=10 --retry-connrefused https://example.com/largefile.zip

Casi d’uso e scenari pratici

  1. Backup di una pagina di documentazione con risorse locali per referenza offline:
wget -E -H -k -K -p --convert-links https://docs.example.com/guide
  1. Scaricare una lista di file per processo batch:

Crea urls.txt con ogni URL su una riga, poi:

wget -i urls.txt -P /mnt/downloads
  1. Testare risposta del server con user-agent personalizzato:
wget --user-agent="TestBot/1.0" -S https://example.com/path

Esempi di test di accettazione

  • Scaricare un file singolo: wget https://example.com/robots.txt deve generare un file robots.txt nella cartella corrente.
  • Scaricare in una directory specifica: wget -P /tmp/down https://example.com/sample.pdf deve salvare sample.pdf in /tmp/down.
  • Verificare il comportamento in caso di file non modificato: scaricato con -N, wget non deve sovrascrivere se la versione remota non è più recente.

Quando wget non è la scelta giusta (controesempi)

  • Interazioni complesse con API che richiedono autenticazioni token-based e parsing JSON: curl o librerie HTTP nel linguaggio di programmazione sono più adatte.
  • Download parallelo massiccio e orchestrazione: strumenti come aria2 offrono download paralleli e maggiore performance.
  • Interfaccia grafica richiesta dall’utente finale: usare un browser o strumenti con GUI.

Best practice e heuristics rapide

  • Controlla robots.txt prima di fare crawling su siti altrui.
  • Non usare user-agent ingannevoli su siti che non gestisci.
  • Limita velocità e frequenza per non causare denial-of-service involontario.
  • Mantieni wget aggiornato tramite package manager.

Mini-metodologia: procedura rapida per mirror responsabile

  1. Leggi robots.txt e accertati che la sezione che vuoi scaricare sia permessa.
  2. Esegui una prova su una singola pagina con --wait=2 --limit-rate=20K.
  3. Se OK, aumenta progressivamente la scala controllando log e metriche server.
  4. Fallo in orari di bassa attività o concorda una finestra con il proprietario del sito.

Decision tree per scegliere wget o alternative

flowchart TD
  A[Devo scaricare contenuti web?] --> B{Ho bisogno di mirroring ricorsivo?}
  B -- Sì --> C[Usa wget con --recursive e limitazioni]
  B -- No --> D{Ho bisogno di controlli HTTP avanzati?}
  D -- Sì --> E[Usa curl o librerie HTTP]
  D -- No --> F{Sto su Windows e preferisco native?}
  F -- Sì --> G[Usa PowerShell Invoke-WebRequest]
  F -- No --> E

Domande frequenti

Perché compare “wget: command not found” su Windows?

Perché wget non è installato o la sua cartella non è inclusa nella variabile PATH di sistema.

Posso usare curl al posto di wget?

Sì. curl è ideale per download singoli e operazioni HTTP dettagliate; non ha però le stesse opzioni per mirroring ricorsivo integrate come wget.

Scaricando interi siti rischio problemi legali?

Può essere problematico se violi i Termini di Servizio o estrai contenuti protetti. Rispetta robots.txt e richiedi permessi quando necessario.

Sommario finale

Wget è uno strumento potente per scaricare contenuti dal web dalla riga di comando. Se ricevi l’errore “wget: command not found”, verifica l’installazione e la PATH. Su Windows preferisci Chocolatey o Scoop per installazioni gestite; su macOS usa Homebrew. Quando usi wget per crawling o mirroring, applica rate limiting, rispetta robots.txt e considera alternative (curl, PowerShell, aria2) quando necessario. Segui le checklist e i test di accettazione per garantire installazioni e download affidabili.

Note importanti

  • Usa sempre fonti attendibili per scaricare binari.
  • Non impersonare bot senza autorizzazione.
  • Mantieni una politica di rispetto verso i server che visiti.

Ringraziamenti

Se hai ancora domande o vuoi esempi pratici per il tuo caso d’uso (script batch, integrazione CI/CD, scraping etico), lascia un commento e descrivi il tuo ambiente (Windows/macOS, versione, obiettivo).

Autore
Redazione

Materiali simili

Come installare Yahoo Mail su Windows
Email

Come installare Yahoo Mail su Windows

Guardare Howdy senza Roku — guida rapida
Streaming

Guardare Howdy senza Roku — guida rapida

Velocizzare il Wi‑Fi in aereo | Guida pratica
Viaggi

Velocizzare il Wi‑Fi in aereo | Guida pratica

Attacchi Man‑in‑the‑Prompt: difesa per chatbot AI
Sicurezza

Attacchi Man‑in‑the‑Prompt: difesa per chatbot AI

Proteggere account Gmail: cosa fare se sei hackerato
Sicurezza

Proteggere account Gmail: cosa fare se sei hackerato

Siti indispensabili per crescere come freelance
Freelance

Siti indispensabili per crescere come freelance