Estoy usando wget para descargar todos los archivos desde una carpeta usando las opciones -r y -np. Sin embargo, esto también descarga las carpetas anteriores, que no quiero.
Por ejemplo:
wget -r -np ftp://user:[email protected]/articles/artist/images/
esto descarga todos los archivos desde "imágenes" (lo cual es bueno) pero luego también descarga las carpetas artículos , artista e imágenes (lo cual es malo). ¿Qué opción soluciona esto?
Respuestas:
Creo que lo que estás buscando es la
--cut-dirs
opción. Utilizado junto con la-nH
opción (sin nombre de host), puede especificar exactamente qué nivel de directorio desea que aparezca en su salida local. Como ejemplo, tengo una descarga .pkg que quiero escribir en mi directorio local, y no quiero que se incluya todo el árbol principal, solo los subdirectorios. En este caso, mi punto de partida para obtener el nombre .pkg como directorio principal es 5 niveles inferiores:Lo que verá, entonces, es el nombre driver_C123_105.pkg en su directorio actual.
[... etc ...]
[..... etc ....]
Puede dirigir esta salida para ir a otro lado con la
-P
opción.fuente
--no-host-directories
wget --no-parent --no-host-directories --cut-dirs 3 -r https://busybox.net/downloads/binaries/1.30.0-i686/
para tener todo dentro del directorio 1.30.0-i686.La
--no-parent
opción es lo que estás buscando.fuente
--no-parent
: utilizó la versión corta-np
en el comando de ejemplo. Es más probable que esté buscando la--cut-dirs
opción, como en la respuesta de Robert Casey .Puedes buscar esto:
El modificador -nd es una abreviatura de --no-directorios.
fuente
-nd
opción, se descartará toda la estructura del directorio , por lo que incluso si hay subdirectorios debajo del que está descargando, no se crearán y todos los archivos se guardarán en el directorio de descarga raíz.De
man wget
:fuente
--mirror
, o con un cliente FTP diferente (lftp
,ncftp
, ...)