wget: descarga todos los archivos pero no las carpetas anteriores


9

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:pass@352.525.255.54/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?


2
(Fuera del tema, no se trata realmente de programación o desarrollo de software, votar para pasar a SuperUser.)
Bruno

@Bruno - De acuerdo
zellio

se trata de desarrollo de software - estoy escribiendo un aspecto de transferencias FTP dentro de un software

Respuestas:


7

Creo que lo que estás buscando es la --cut-dirsopción. Utilizado junto con la -nHopció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:

wget -np -nH --cut-dirs 5 -r http://www.myhost.org/pub/downloads/My_Drivers/OS_10_5_x/Letter_Format/driver_C123_105.pkg

Lo que verá, entonces, es el nombre driver_C123_105.pkg en su directorio actual.

% ls -lt | head
drwxr-xr-x   12 rob  rob        408 Feb 22 12:54 driver_C123_105.pkg
-rw-------@   1 rob  rob          0 Feb 16 15:59 1kPSXcUj.pdf.part
-rw-------@   1 rob  rob        842 Feb  3 14:47 WcUuL69s.jnlp.part

[... etc ...]

% find driver_C123_105.pkg
driver_C123_105.pkg
driver_C123_105.pkg/Contents
driver_C123_105.pkg/Contents/Archive.bom
driver_C123_105.pkg/Contents/Archive.pax.gz
driver_C123_105.pkg/Contents/index.html
driver_C123_105.pkg/Contents/index.html?C=D;O=A
driver_C123_105.pkg/Contents/index.html?C=D;O=D
driver_C123_105.pkg/Contents/index.html?C=M;O=A
driver_C123_105.pkg/Contents/index.html?C=M;O=D
driver_C123_105.pkg/Contents/index.html?C=N;O=A
driver_C123_105.pkg/Contents/index.html?C=N;O=D
driver_C123_105.pkg/Contents/index.html?C=S;O=A
driver_C123_105.pkg/Contents/index.html?C=S;O=D
driver_C123_105.pkg/Contents/Info.plist
driver_C123_105.pkg/Contents/PkgInfo
driver_C123_105.pkg/Contents/Resources
driver_C123_105.pkg/Contents/Resources/background.jpg

[..... etc ....]

Puede dirigir esta salida para ir a otro lado con la -Popción.


-nH se refiere a--no-host-directories
Rodrirokr

Esto es exactamente eso! en mi caso, estaba descargando binarios busybox de su página. 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.
Rodrirokr

6

La --no-parentopción es lo que estás buscando.


44
El autor de la pregunta ya sabe --no-parent: utilizó la versión corta -npen el comando de ejemplo. Es más probable que esté buscando la --cut-dirsopción, como en la respuesta de Robert Casey .
waldyrious

1

Puedes buscar esto:

wget -r -np -nd ftp://user:pass@352.525.255.54/articles/artist/images/

El modificador -nd es una abreviatura de --no-directorios.


Stack Overflow, aún más rápido que leer manuales ... gracias por su respuesta, exactamente lo que necesito :)
nicolas

2
Tenga en cuenta que con la -ndopció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.
waldyrious

0

De man wget:

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

No puedo hacer que esto funcione. ¿Funciona también para ftp?

No estoy seguro de por qué subiría la jerarquía en absoluto con FTP, ya que no tiene sentido seguir los enlaces allí. Trate quizás con --mirror, o con un cliente FTP diferente ( lftp, ncftp, ...)
Bruno
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.