2009-07-03 14 views
430

Ho bisogno di scaricare i file in/tmp/cron_test /. Il mio codice wget èCome specificare la posizione con wget?

wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/ 

Quindi c'è qualche parametro per specificare la directory?

+1

simile a Unix SE: [Download utilizzando wget in una directory diversa da quella directory corrente] (http: //unix.stackexchange com/q/23501/21471). – kenorb

risposta

645

Dalla pagina di manuale:

-P prefix 
--directory-prefix=prefix 
      Set directory prefix to prefix. The directory prefix is the 
      directory where all other files and sub-directories will be 
      saved to, i.e. the top of the retrieval tree. The default 
      is . (the current directory). 

Quindi è necessario aggiungere -P /tmp/cron_test/ al comando.

+13

-P è il modulo più breve per --directory-prefisso – nik

+2

-P/tmp/cron_test/doesnt funziona ma rimuovendo/like -P tmp/cron_test/funziona e crea anche una directory inesistente. – Kangarooo

+5

Kangaroo probabilmente non funziona perché non hai/tmp/cron_test/sul tuo sistema: P – Sameer

-7

provare questo metodo -

import os 
path = raw_input("enter the url:") 
fold = raw_input("enter the folder:") 
os.system('wget -r -nd -l1 -P %s --no-parent -A mp3 %s'%(fold, path)) 
+0

Questo è più complicato di necesario – Adam

+0

Wayyyyyy più complicato del necessario. Perché usare Python? Questo non risponde alla domanda, poiché l'OP sta ovviamente usando BASH. –

187

-O è l'opzione per specificare il percorso del file che si desidera scaricare.

wget <file.ext> -O /path/to/folder/file.ext 

-P è prefisso in cui verrà scaricato il file nella directory

wget <file.ext> -P /path/to/folder 
+2

Vorrei aggiungere una barra finale per renderlo '/ percorso/alla/cartella /' ci –

+7

in su votato per specificare anche '-O' che non mi serviva, ma mi faceva sentire più sicuro che' -P' era quello Avevo bisogno. – WORMSS

+0

@louisMaddox per le pagine man sulla mia macchina, il prefisso predefinito è "." (cioè, la directory corrente) aggiungendo una barra finale a "prefisso di directory" causerebbe un errore di doppia barra (cioè, il mio/preferito/dir/prefisso //) inoltre, considerando la semantica, "prefisso di directory" non richiederebbe un barra finale. –

4

Assicurarsi di avere l'URL corretto per qualunque cosa si sta scaricando prima di tutto, gli URL con i caratteri come '?' e tale non può essere analizzato e risolto, questo confonderà la linea cmd e accetterà tutti i caratteri che non sono stati risolti nel nome dell'URL di origine come nome del file in cui stai scaricando.

, ad esempio, wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect" verrà scaricato in un file denominato ?source=typ_redirect.

Come puoi vedere una cosa o due sugli urls aiuta a capire wget.

Sto avviando da un disco hirens e avevo solo Linux 2.6.1 come risorsa (il sistema di importazione non è disponibile). La sintassi corretta che ha risolto il mio problema, il download di un'ISO sul disco rigido fisico, era:

wget "(source url)" -O (directory where HD was mounted)/isofile.iso" 

si poteva capire l'URL corretto trovando a che punto download wget in un file chiamato "index.html" (la file di default), e ha le giuste dimensioni/altri attributi del file è necessario mostrato dalla seguente comando:

wget "(source url)" 

una volta che il file url e la fonte è corretto e si sta scaricando in index.html, ci si può fermare il download (ctrl + z) e modificare il file di output utilizzando -O "<specified download directory>/filename.extension" dopo l'URL di origine.

Nel mio caso ciò comporta il download di un iso e la memorizzazione come file binario sotto isofile.iso, che si spera montare.

-1

uomo wget: -O file di --output-document = file di

wget "url" -O /tmp/cron_test/<file> 
+0

Non è una risposta, perché l'opzione può mettere il file scaricato nel file specificato. Ma la domanda è "Come mettere il file in una cartella". E questo è duplicato esiste risposta –

Problemi correlati