Sto cercando di ftp una cartella usando il client ftp della riga di comando, ma finora sono stato in grado di usare 'get' solo per ottenere singoli file.
Sto cercando di ftp una cartella usando il client ftp della riga di comando, ma finora sono stato in grado di usare 'get' solo per ottenere singoli file.
Risposte:
Puoi fare affidamento su wget che di solito gestisce ftp get correttamente (almeno nella mia esperienza). Per esempio:
wget -r ftp://user:pass@server.com/
Puoi anche usare quello -madatto per il mirroring. Attualmente è equivalente a -r -N -l inf.
Se hai dei caratteri speciali nei dettagli delle credenziali, puoi specificare gli argomenti --usere --passwordper farlo funzionare. Esempio con accesso personalizzato con caratteri specifici:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
MODIFICA
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 perderti i subdir, usa meglio l'opzione di 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.
wget -m( --mirror). wget -rè limitato a una profondità di ricorsione di 5 per impostazione predefinita.
--usere --passwordanche su Red Hat. La mia opinione è: GNU Wget 1.11.4 Red Hat modifiedmi chiedo se sia una cosa versione o una cosa distro ...
-l 0, quindi non è necessario utilizzare --mirrorquale può avere alcuni effetti collaterali indesiderati come i file
wget --ask-password -rl 99 ftp://user@server.com. In questo modo la password non è visibile con pse non rimane nella cronologia. Naturalmente, per la natura di ftp, viene inviato non crittografato al server.
$), ad esempio--user='user' --password='pa$$word'
Solo per integrare la risposta data da Thibaut Barrère.
ero solito
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Nota la doppia barra dopo il nome del server. Se non si inserisce una barra aggiuntiva, il percorso è relativo alla home directory dell'utente.
-nH evita la creazione di una directory che prende il nome dal nome del server-nc evita di creare un nuovo file se esiste già sulla destinazione (viene appena ignorato) --cut-dirs=5permette di prendere il contenuto della directory / absolute / path / to / e di inserirlo nella directory in cui si avvia wget. Il numero 5 viene utilizzato per filtrare i 5 componenti del percorso. La doppia barra indica un componente aggiuntivo.--ftp-user=USERe --ask-password.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOSTdopo aver avviato ncftp ...
wget, e anche più veloce in modalità TAR. Grazie!
Se lftpè installato sul computer, utilizzare mirror dir. E il gioco è fatto. Vedi il commento di Ciro qui sotto se vuoi scaricare ricorsivamente una directory.
mirror -R dirdirectory ricorsiva carica / aggiorna
mirror ./per scaricare tutti i file e le cartelle in modo ricorsivo nel percorso corrente.
mirror, per la directory corrente e le sue sottocartelle.
Se puoi usare scpinvece di ftp, l' -ropzione lo farà per te. Vorrei verificare se è possibile utilizzare un meccanismo di trasferimento file più moderno di FTP.
scpproverò comunque a usare ssh, che non funzionerà se hai solo le credenziali FTP. Mi
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 con il protocollo FTP e può essere utilizzato per scaricare file e cartelle in modo ricorsivo. funziona su linux. È stato utilizzato e funziona perfettamente per il trasferimento di file / cartelle ricorsivo.
Controlla questo link ... http://www.ncftp.com/
Se puoi, ti consiglio vivamente tare bzip(o gzip, qualunque cosa galleggi la tua barca) la directory sulla macchina remota - per una directory di qualsiasi dimensione significativa, i risparmi sulla larghezza di banda probabilmente valgono il tempo di comprimere / decomprimere.
Non dovresti usare ftp. Come telnetse non utilizzasse protocolli sicuri e le password vengano trasmesse in chiaro. Ciò semplifica l'acquisizione di nome utente e password da parte di terzi.
Per copiare directory remote da remoto, queste opzioni sono migliori:
rsyncè lo strumento più adatto se è possibile accedere 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:
attiva / disattiva il prompt con il comando PROMPT.
Uso:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget, non è affatto ricorsivo. risposta del 22 settembre 2008 alle 09:01 Thibaut Barrère è più facile da capire ma deve aggiungere l'opzione-l 0come menzionato nei commenti