2009-07-03 12 views
430

Necesito que los archivos se descarguen en/tmp/cron_test /. Mi código wget es¿Cómo especificar la ubicación con wget?

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

Entonces, ¿hay algún parámetro para especificar el directorio?

+1

similares a Unix SE: [Descargar usando wget a un directorio diferente al directorio actual] (http: //unix.stackexchange .com/q/23501/21471). – kenorb

Respuesta

645

Desde la página del manual:

-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). 

Así que hay que añadir -P /tmp/cron_test/ a su comando.

+13

-P es la forma más corta para --directory-prefijo – nik

+2

-P/tmp trabajo/cron_test/doesnt pero la eliminación/tmp/-P como cron_test/obras e incluso crea directorio inexistente. – Kangarooo

+5

canguro que el trabajo probablemente duerma, porque usted no tiene/tmp/cron_test/en su sistema: P – Sameer

-7

probar este método -

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

Esto es más complicado que NECESARIO – Adam

+0

wayyyyyy más complicado de lo necesario. ¿Por qué usar Python en absoluto? Esto no responde la pregunta, ya que obviamente el OP está usando BASH. –

187

-O es la opción para especificar la ruta del archivo que desea descargar a.

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

-P es el prefijo donde se descargará el archivo en el directorio

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

me gustaría añadir una barra diagonal para que sea '/ ruta/a/carpeta /' no –

+7

Hasta votó a favor de especificar también '-O' que yo no necesito, pero me hizo sentir más seguro de que era lo que' -P' Lo necesitaba. – WORMSS

+0

@louisMaddox según las páginas man de mi máquina, el prefijo predeterminado es "." (es decir, el directorio actual) añadir una barra al final "prefijo de directorio" podría causar un error de doble barra (es decir, mi/favorito/dir/prefijo //) por otra parte, teniendo en cuenta la semántica, "prefijo de directorio" sería no requiere una barra diagonal. –

4

Asegúrese de que tiene la URL correcta para lo que está descargando en primer lugar, las direcciones URL con caracteres como tales y '?' no se puede analizar y resolver, esto confundirá la línea de cmd y aceptará cualquier carácter que no se resuelva en el nombre de la url de origen como el nombre de archivo en el que está descargando.

es decir, wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect" se descargará en un archivo llamado ?source=typ_redirect.

Como puedes ver, saber una o dos cosas sobre las URL ayuda a comprender a wget.

estoy arrancar desde un disco Hirens y sólo tenía Linux 2.6.1 como un recurso (import os no está disponible). La sintaxis correcta que resolvió mi problema, la descarga de una iso en el disco duro físico, era:

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

se podría averiguar la URL correcta mediante la búsqueda de en qué momento las descargas wget en un archivo llamado "index.html" (la de archivo por defecto), y tiene las correctas tamaño/otros atributos del archivo que necesita verse en el siguiente comando:

wget "(source url)" 

una vez el archivo url y la fuente es correcta y se descargan en el index.html, puede detener la descarga (ctrl + z) y cambie el archivo de salida usando -O "<specified download directory>/filename.extension" después de la url de origen.

En mi caso esto resulta en la descarga de una iso y almacenarla como un archivo binario bajo isofile.iso, que se espera monturas.

-1

hombre wget: -O archivo --output-documento de archivo =

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

No es una respuesta, ya que la opción -o coloca el archivo descargado en el archivo especificado. Pero la pregunta es "Cómo poner el archivo en una carpeta". Y esto es duplicado existe respuesta –

Cuestiones relacionadas