Come posso ottenere tutti i file scaricati da una directory del sito FTP con nome file come emp *.
Per favore, suggerisci
Come posso ottenere tutti i file scaricati da una directory del sito FTP con nome file come emp *.
Per favore, suggerisci
Risposte:
Ho testato bash
con successo questo liner con un mirror FTP CentOS 6.5, ma l'ho reso anonimo per prevenire abusi:
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
Per spiegare, questo va al server ftp, ottiene l'elenco delle directory (primo arricciatura), convoglia i dati in awk per restituire solo i nomi dei file. Infine, questo viene convogliato in grep per corrispondere solo a quei file che iniziano con il numero 8 per simulare il tuo emp*
requisito.
Quei nomi di file filtrati diventano la variabile i
e quindi uso un semplice ciclo per recuperarli aggiungendoli all'URL per la seconda richiesta di arricciatura. Ho finito con questi due file:
-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
Se non mi manca qualcosa, tutto ciò che devi fare è inserire nella directory e utilizzare "mget emp *". Potresti voler cambiare l'impostazione "prompt" (è un comando di attivazione / disattivazione) se non vuoi rispondere ad ogni file S / N.