Home > Comandi Console, Internet, Linux, Trucchi, Ubuntu > Scaricare più files in sequenza

Scaricare più files in sequenza

14 gennaio 2009

Linux dal vivo

Domenica pomeriggio sono stato al circo acquatico e vedendo che hanno un sito internet, sono andato a vederlo e tra le sezioni ce n’è una dedicata alle fotografie degli spettacoli.

Mi viene il desiderio di scaricarle per guardarle meglio senza doverle aprire una per una dal sito internet ma salvarle attraverso il browser può rivelarsi un’operazione alquanto noiosa, è necessario mettere all’opera wget, vediamo come.

Apro la prima foto sul browser vedo che l’indirizzo internet è http://www.circoacquatico.it/imagebrowser/ib_p001_0_1.jpg quindi osservo l’ultima fotografia che ha indirizzo http://www.circoacquatico.it/imagebrowser/ib_p001_0_37.jpg.

Mi servirà quindi scaricare tutte le foto da ib_p001_0_1.jpg a ib_p001_0_37.jpg, in altre parole ib_p001_0_ seguito dai numeri tra 1 e 37 e da .jpg.

Chiedo aiuto a wget: all’interno di una finestra di terminale basterà eseguire:

for i in `seq 1 37`; do wget
http://www.circoacquatico.it/imagebrowser/ib_p001_0_$i.jpg ;
done;

Si tratta di un comando su più righe per facilitare la lettura ma potrà essere digitato anche tutto su una riga, il funzionamento è garantito ugualmente.

Il significato è abbastanza semplice: inizialmente verrà eseguito il comando seq 1 37 che restituirà i numeri da 1 a 37. Questa sequenza di numeri verrà passata al for che ripeterà il passaggio per ognuno di questi numeri.

Per ciascuna iterazione verrà eseguito il wget con l’indirizzo composto da ib_p001_o_$i.jpg. Il $i prenderà automaticamente un numero della sequenza ad ogni iterazione, formando la prima volta il nome ib_p001_o_1.jpg, la seconda ib_p001_o_2.jpg e così via.

Al termine di tutto il giro, avremo nella directory corrente le 37 immagini del circo acquatico, uno spettacolo carino che consiglio, senza troppe pretese per trascorrere qualche oretta di divertimento.

La stessa tecnica col for e col seq può essere usata con qualsiasi comando, per copiare, per cancellare, spostare, aprire, etc.

  1. Roberto
    14 febbraio 2009 alle 11:48

    Comando davvero utile!🙂
    E se le immagini avessero nomi generici e non ordinati, ma facessero parte tutte di un livello comune (ad esempio http://www.circoacquatico.it/imagebrowser/ ) come si può fare per farle scaricare tutte? si deve utilizzare qualche comando che utilizza sempre i simboli di ricerca? (ad esempio * o ? )

  2. 14 febbraio 2009 alle 15:41

    ciao Roberto
    il protocollo http non consente l’elencazione dei files come invece l’ftp, quindi una richiesta globale non e` possibile eseguirla

    puoi fare qualcosa del genere se tutte le immagini sono linkate all’interno di una pagina indice puoi usare wget -r -l 1 http://…. che scarichera` la pagina indice e 1 livello di profondita` di tutti i links presenti in esssa

    ciao

  3. night train
    31 maggio 2009 alle 17:05

    ciao

    ma se i files da scaricare non fossero né ordinati, né generici, né linkati in alcuna pagina (è il caso di uno spazio usato come deposito), quale comando bisognerebbe usare?

    ho provato diverse opzioni ma non ho ottenuto alcun risultato

    i files in comune hanno solo l’estensione .tar.gz (ma l’opzione -A non funziona)

    grazie

    Night Train

    • 31 maggio 2009 alle 19:03

      se non ci sono riferimenti di sorta non e` possibile
      http non consente di elencare le directories come ftp
      ciao

  1. No trackbacks yet.
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: