
Tengo un archivo de configuración que consta de una lista de URI que quiero descargar. Por ejemplo,
http://xyz.abc.com/Dir1/Dir3/sds.exe
http://xyz.abc.com/Dir2/Dir4/jhjs.exe
http://xyz.abc.com/Dir1/itr.exe
Quiero leer el archivo de configuración y copiar cada URL pero al mismo tiempo crear la misma estructura de directorio que en el host. Por ejemplo, para la primera línea del archivo de configuración, quiero crear la estructura de directorio Dir1/Dir3 en mi máquina local (si no existe) y luego copiar sds.exe a .../Dir1/Dir3/
Descubrí que puedo descargar todas las URL en un archivo usando 'wget -i' pero ¿cómo puedo crear la estructura de directorio correspondiente con eso?
Respuesta1
De man wget
:
-x, --force-directorios:
[...]
crear una jerarquía de directorios, incluso si no se hubiera creado ninguna de otra manera. Por ejemplo, wget -xhttp://fly.srk.fer.hr/robots.txtguardará el archivo descargado en fly.srk.fer.hr/robots.txt.
Respuesta2
Para obtener la estructura que solicita, sugeriría usar -nH y -x.
Esto eliminará el nombre de host y creará la estructura de directorio esperada.
p.ej
wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe
- 'Dir1/Dir3/sds.exe' saved [1234]
Desde la página de manual:
-nH
--no-host-directories
Disable generation of host-prefixed directories. By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/. This option disables such behavior.
-x
--force-directories
...create a hierarchy of directories, even if one would not have been created otherwise...