Ich versuche, einen Ordner mit dem FTP-Client der Befehlszeile zu ftpen, aber bisher konnte ich nur mit 'get' einzelne Dateien abrufen.
Sie können sich auf wget verlassen, das normalerweise mit FTP richtig umgeht (zumindest nach meiner eigenen Erfahrung). Zum Beispiel:
wget -r ftp://user:[email protected]/
Sie können auch -m
was zum Spiegeln geeignet ist. Es ist derzeit äquivalent zu -r -N -l inf
.
Wenn die Anmeldedaten Sonderzeichen enthalten, können Sie das --user
und --password
Argumente, um es zum Laufen zu bringen. Beispiel mit benutzerdefiniertem Login mit bestimmten Zeichen:
wget -r --user="[email protected]" --password="Pa$$wo|^D" ftp://server.com/
EDIT Beachten Sie, wie von @asmaier ausgeführt, auch wenn -r
ist für die Rekursion vorgesehen und hat eine Standard-Maximalstufe von 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Wenn Sie keine Unterverzeichnisse verpassen möchten, verwenden Sie besser die Spiegelungsoption -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.
Nur um die Antwort von Thibaut Barrère zu ergänzen.
Ich benutzte
wget -r -nH --cut-dirs=5 -nc ftp://user:[email protected]//absolute/path/to/directory
Beachten Sie den doppelten Schrägstrich nach dem Servernamen. Wenn ich keinen zusätzlichen Schrägstrich mache, ist der Pfad relativ zum Ausgangsverzeichnis des Benutzers.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
Wenn lftp
auf Ihrem Computer installiert ist, verwenden Sie mirror dir
. Und du bist fertig. Siehe den Kommentar von Ciro unten, wenn Sie ein Verzeichnis rekursiv herunterladen möchten.
Wenn Sie scp
anstelle von ftp
verwenden können, wird der -r
Option wird dies für Sie tun. Ich würde prüfen, ob Sie einen moderneren Dateiübertragungsmechanismus als FTP verwenden können.
Verwenden Sie stattdessen WGet. Es unterstützt HTTP- und FTP-Protokolle.
wget -r ftp://mydomain.com/mystuff
Viel Glück!
referenz: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Es gibt 'ncftp', das für die Installation unter Linux verfügbar ist. Dies funktioniert mit dem FTP-Protokoll und kann zum rekursiven Herunterladen von Dateien und Ordnern verwendet werden. funktioniert unter Linux. Wurde verwendet und funktioniert gut für die rekursive Ordner-/Dateiübertragung.
Überprüfen Sie diesen Link ... http://www.ncftp.com/
Wenn Sie sich an die Befehlszeile von FTP halten möchten, sollten Sie NcFTP ausprobieren. Dann können Sie get -R verwenden, um einen Ordner rekursiv abzurufen. Sie erhalten auch die Fertigstellung.
Wenn Sie können, empfehle ich Ihnen dringend, tar
und bzip
(oder gzip
, was auch immer Ihr Boot schwimmt) das Verzeichnis auf dem Remote-Computer - für ein Verzeichnis von einer signifikanten Größe, Die Bandbreitenersparnis lohnt sich wahrscheinlich für das Zip/Entpacken.
wget -r ftp://url
Perfekt für Redhat und Ubuntu
Sie sollten ftp
nicht verwenden. Wie telnet
werden keine sicheren Protokolle verwendet und Passwörter werden im Klartext übertragen. Dies macht es Dritten sehr einfach, Ihren Benutzernamen und Ihr Passwort zu erfassen.
Um entfernte Verzeichnisse zu kopieren, sind diese Optionen besser:
rsync
ist das am besten geeignete Tool, wenn Sie sich über ssh
anmelden können, da es nur die Unterschiede kopiert und bei einem Verbindungsabbruch problemlos in der Mitte neu gestartet werden kann.
ssh -r
ist die zweitbeste Option zum rekursiven Kopieren von Verzeichnisstrukturen.
Sehen: