Come Scaricare Directory HTTP con Wget

Pubblicato da Yuri Carlenzoli | 18 Ottobre 2010

Ecco come scaricare con Wget tutti i file presenti in web directory HTTP pubbliche da shell con linux.

wget-shell-scaricare-file-directory

Sopratutto con linux, per le patch delle distro, per le dipendenze di software o per altri motivi può capitare a volte di voler scaricare intere directory di file, ovvero tutti i file presenti in una directory web HTTP accessibile pubblicamente, tramite Wget il download manager per la shell si possono scaricare semplicemente tutti i file presenti in una web directory.

Niente di difficile però è un trucco, o meglio, un possibile utilizzo di Wget che finché non serve non si scopre, sapendolo prima si possono implementare script e si potrà mettere il comando in cron per scaricare automaticamente.

Prima un po' di teoria però, sia su windows che linux un asterisco seguito da un punto e poi un'estensione di un file vuol dire tutti i file di quell'estensione, per le immagini GIF sarebbe *.gif, in teoria dicendo a Wget "scaricami tutti i file jpg sul server XXX nella directory XXX" tramite il comando wget http://www.serverXXX.com/directoryXXX/*.gif dovrebbe scaricarli, invece no, nel manuale di Wget viene riferito infatti che:

You want to download all the gifs from a directory on an http server. You tried ‘wget http://www.server.com/dir/*.gif’, but that didn't work because http retrieval does not support globbing.

Praticamente non funziona perchè il protocollo HTTP non supporta il "globbing", che sarebbe l'espansione del nome di tutti i file di un tipo.

Per scaricare tutte le immagini GIF di quella directory basterà usare il comando:

wget -r -l1 --no-parent -A.gif http://www.serverXXX.com/directoryXXX/

Questo comando dice a Wget di recuperare ricorsivamente i file con la profondità massima (la locazione tra le directory) di 1 che sarebbe la directory stessa e di ignorare riferimenti alla directory principale, così potrete scaricare tutti i file presenti in una web directory HTTP tramite Wget.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.