
¿Cómo puedo descargar todos los archivos desde un directorio de sitio FTP con un nombre de archivo como emp*?
Por favor recomiende.
Respuesta1
Probé bash
con éxito este delineador en un espejo FTP de CentOS 6.5, pero lo anonimicé para evitar abusos:
for i in `curl -i ftp://ftp.example.com/pub/centos/6.5/updates/i386/repodata/ | awk '{print $9}' | grep ^8`; do curl -O http://ftp.eample.com/pub/centos/6.5/${i} ; done
Para explicarlo, esto va al servidor ftp, obtiene la lista del directorio (primer curl), canaliza los datos a awk para devolver solo los nombres de los archivos. Finalmente, esto se canaliza a grep para que solo coincida con aquellos archivos que comienzan con el número 8 para simular sus emp*
requisitos.
Esos nombres de archivos filtrados se convierten en la variable i
y luego uso un bucle for simple para recuperar cada uno agregándolos a la URL para la segunda solicitud curl. Terminé con estos dos archivos:
-rw-r--r-- 1 adam staff 362 11 Jul 13:22 819455e9f840760fcbdccf0283e4324ceabc8512f246e911d39424760ed1729e-primary.xml.gz
-rw-r--r-- 1 adam staff 360 11 Jul 13:22 8e4d3dd261375d31b35b6870e187d841633c68a400e4d11bb7234fea517cdbaa-other.xml.gz
Respuesta2
Si no me falta nada, todo lo que necesitas hacer es ingresar al directorio y usar "mget emp*". Es posible que desee cambiar la configuración de "mensaje" (es un comando de alternancia) si no desea responder a todos los archivos S/N.