it-swarm.com.de

So laden Sie einen Ordner rekursiv über FTP unter Linux herunter

Ich versuche, einen Ordner mit dem FTP-Client der Befehlszeile zu ftpen, aber bisher konnte ich nur mit 'get' einzelne Dateien abrufen.

305
Charles Ma

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.
600

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.

  • -nH vermeidet die Erstellung eines Verzeichnisses, das nach dem Servernamen benannt ist
  • -nc vermeidet das Erstellen einer neuen Datei, wenn diese bereits auf dem Ziel existiert (sie wird nur übersprungen)
  • --cut-dirs = 5 erlaubt mir, den Inhalt von/absolute/path/to/directory zu nehmen und in das Verzeichnis zu schreiben, in dem ich wget starte. Mit der Nummer 5 werden die 5 Komponenten des Pfades herausgefiltert. Der doppelte Schrägstrich bedeutet eine zusätzliche Komponente.
157
Ludovic Kuty
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
25
Vinko Vrsalovic

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.

20
Dilawar

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.

17
Greg Hewgill

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

8
Jason Stevenson

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/

7
Cypher

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.

3
Jazz

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.

3
Hank Gay

wget -r ftp://url

Perfekt für Redhat und Ubuntu

3
Phillip

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:

1
Tilo