Come specificare la posizione con wget?


Risposte:


955

Dalla pagina del 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/(forma breve) o --directory-prefix=/tmp/cron_test/(forma lunga) al comando. Si noti inoltre che se la directory non esiste verrà creata.


5
-P / tmp / cron_test / non funziona ma rimuove / like -P tmp / cron_test / funziona e crea persino directory inesistenti.
Canguro

7
Canguro probabilmente non funziona perché non hai / tmp / cron_test / sul tuo sistema: P
Sameer Alibhai

41
La descrizione del manuale rende questa opzione difficile da cercare. Non penso alla posizione in cui voglio salvare qualcosa come un "prefisso di directory". Grazie per la condivisione!
Iain Samuel McLean Elder,

7
Inoltre, è possibile rimuovere la cartella principale tramite --no-host-directorieso -nHcome da serverfault.com/questions/354792/…
Alien Life Form

-P viene ignorato se si utilizza un file di input con -i qualche idea?
Jan Viehweger,

410

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

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

-P è il prefisso da cui scaricherà il file nella directory

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

8
Aggiungerei una barra finale per farlo /path/to/folder/
Louis Maddox

36
-OHo votato anche per specificare quali non -Pmi servivano , ma mi hanno fatto sentire più sicuro di ciò di cui avevo bisogno.
WORMSS

@louisMaddox per le pagine man sulla mia macchina, il prefisso predefinito è "." (vale a dire, la directory corrente) l'aggiunta di una barra finale a "prefisso directory" causerebbe un doppio errore barra (cioè mio / preferito / dir / prefisso //) inoltre, considerando la semantica, "prefisso directory" non richiederebbe un trascinamento barra.
Timothy LJ Stewart

2
@ TimothyL.J.Stewart Non vi sono errori di doppia barra.
har-wradim,

NB: -Oesegue l'override -P, quindi non è possibile specificare solo la directory di output (think dirname e solo il nome del file di output (think basename). A tale scopo è sufficiente -Ospecificare il percorso completo del file.
murlakatamenka

7

Assicurati di avere l'URL corretto per tutto ciò che stai scaricando. Prima di tutto, gli URL con caratteri simili ?e simili non possono essere analizzati e risolti. Ciò 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 si sta scaricando.

Per esempio:

wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"

scaricherà in un file chiamato, ?source=typ_redirect.

Come puoi vedere, conoscere una o due cose sugli URL aiuta a capire wget.

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

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

Si potrebbe capire l'URL corretto trovando a che punto wgetscaricare in un file chiamato index.html(il file predefinito), e ha le dimensioni corrette / altri attributi del file che è necessario mostrato dal seguente comando:

wget "(source url)"

Una volta che l'URL e il file di origine sono corretti e vengono scaricati in index.html, è possibile interrompere il download ( ctrl+ z) e modificare il file di output utilizzando:

-O "<specified download directory>/filename.extension"

dopo l'URL della fonte.

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


2

"-P" è l'opzione giusta, continua a leggere per ulteriori informazioni correlate:

wget -nd -np -P / dest / dir --recursive http: // url / dir1 / dir2

Snippet pertinenti dalle pagine man per comodità:

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

   -nd
   --no-directories
       Do not create a hierarchy of directories when retrieving recursively.  With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
       filenames will get extensions .n).


   -np
   --no-parent
       Do not ever ascend to the parent directory when retrieving recursively.  This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.

1

man wget: -O file --output-document = file

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

1
Non è una risposta, poiché l'opzione -o consente di inserire il file scaricato nel file specificato. Ma la domanda è "Come mettere il file in una cartella". E questo è duplicato esiste risposta
Anton Gorbunov
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.