Sto provando a ftp una cartella usando il client ftp dalla riga di comando, ma finora sono stato in grado di usare 'get' per ottenere singoli file.
Potresti fare affidamento su wget che di solito gestisce ftp correttamente (almeno nella mia esperienza personale). Per esempio:
wget -r ftp://user:[email protected]/
Puoi anche usare -m
che è adatto per il mirroring. Attualmente è equivalente a -r -N -l inf
.
Se hai dei caratteri speciali nei dettagli delle credenziali, puoi specificare gli argomenti --user
e --password
per farlo funzionare. Esempio con accesso personalizzato con caratteri specifici:
wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/
EDIT Come sottolineato da @asmaier, fai attenzione che anche se -r
è per la ricorsione, ha un livello massimo predefinito di 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Se non vuoi perdere i sottodirectory, meglio usare l'opzione mirroring, -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
Giusto per completare la risposta data da Thibaut Barrère.
Ero solito
wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory
Notare la doppia barra dopo il nome del server. Se non metto una barra in più, il percorso è relativo alla home directory dell'utente.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Se lftp
è installato sul tuo computer, usa mirror dir
. E hai finito. Vedere il commento di Ciro in basso se si desidera scaricare in modo ricorsivo una directory.
Se puoi usare scp
invece di ftp
, l'opzione -r
farà questo per te. Vorrei verificare se è possibile utilizzare un meccanismo di trasferimento file più moderno rispetto all'FTP.
Usa invece WGet. Supporta i protocolli HTTP e FTP.
wget -r ftp://mydomain.com/mystuff
In bocca al lupo!
riferimento: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
C'è 'ncftp' che è disponibile per l'installazione in linux. Funziona sul protocollo FTP e può essere utilizzato per scaricare file e cartelle in modo ricorsivo. lavora su linux. È stato utilizzato e funziona bene per la cartella ricorsiva/trasferimento di file.
Controlla questo link ... http://www.ncftp.com/
Se si desidera attenersi alla riga di comando FTP, si dovrebbe provare NcFTP. Quindi puoi usare get -R per ottenere ricorsivamente una cartella. Otterrai anche il completamento.
Se puoi, ti suggerisco vivamente tar
e bzip
(o gzip
, qualunque cosa faccia galleggiare la tua barca) la directory sulla macchina remota - per una directory di qualsiasi dimensione significativa, i risparmi di larghezza di banda probabilmente valgono il tempo di comprimere/decomprimere.
wget -r ftp://url
Funziona perfettamente per RedHat e Ubuntu
Non dovresti usare ftp
. Come telnet
non sta usando protocolli sicuri e le password sono trasmesse in chiaro. Ciò rende molto facile per le terze parti acquisire il tuo nome utente e password.
Per copiare le directory remote da remoto, queste opzioni sono migliori:
rsync
è lo strumento più adatto se puoi effettuare il login tramite ssh
, perché copia solo le differenze e può facilmente riavviarsi nel mezzo in caso di interruzione della connessione.
ssh -r
è la seconda opzione migliore per copiare ricorsivamente le strutture di directory.
Vedere: