Wie lade ich einen ganzen Ordner über FTP im Terminal herunter?

Antwort

mget ist die nächstgelegene, die Sie mit der enthaltenen FTP-Binärdatei erhalten können. Sie müssen mkdir und cd / lcd ausführen und dann alle Dateien abrufen, die mit einem Muster wie *

prompt Umschalten kann nützlich sein.

FTP funktioniert in einem Verzeichnis, nicht in Verzeichnissen als Container von Dateien. Wenn Sie die Arbeit unbedingt erledigen müssten und FTP das einzige Tool wäre, das Sie verwenden könnten, könnten Sie ein expect -Skript zusammenschustern, um FTP für Sie zu betreiben.

Zum Glück gibt es Alternativen wie scp | rsync | wget um Dateien im Wert von ganzen Verzeichnissen zu erhalten.

Kommentare

  • Ok … unter dem Strich kann ich also ‚ Laden Sie nicht einen ganzen Ordner gleichzeitig herunter. Ich muss die einzelnen Dateien herunterladen, oder?
  • Yup. Jeder würde nicht ‚ wget, sftp, scp und rsync anzeigen, wenn ftp der Aufgabe gewachsen wäre.
  • Danke … erlaubt SFTP das Herunterladen von Ordnern?
  • Ups (sorry) – nein. sftp ist die gleiche Syntax und die gleichen Einschränkungen wie ftp – nur das Sichern der Verbindung mit ssh anstelle der ftp-Authentifizierung.
  • Wenn Sie ‚ an das FTP-Protokoll gebunden sind, können Sie dies tun Verwenden Sie lftp , um einen rekursiven Download eines Verzeichnisbaums durchzuführen. Old-School-Lösung für dieses Problem.

Antwort

Eine andere Möglichkeit ist die Verwendung von Curl

curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/* 

Ich denke, das funktioniert oder Datei für Datei

curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip 

Ich hoffe, das hat geholfen.

Kommentare

  • OK, vielen Dank, aber gibt es eine Möglichkeit per FTP, dies zu tun?
  • Super! Ich war mir der FTP-Neigung von curl ‚ nicht bewusst. Danke!
  • Ja … ich auch nicht. Ich ‚ werde es wahrscheinlich öfter verwenden.
  • I ‚ Ich versuche Ihren Vorschlag, erhalte aber Folgendes: curl: (78) RETR response: 550
  • curl kann damit absolut nicht umgehen . wget kann.

Antwort

Verwenden Sie scp (Dokumentation) oder sftp (Dokumentation)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory 

Kommentare

  • Das ‚ ist nicht das, was ich ‚ frage. Meine Frage ist: Wie lade ich einen Ordner über FTP im Terminal herunter? Mit anderen Worten, welche Befehle in FTP verwende ich zum Herunterladen eines Ordners?
  • sftp ist FTP +1
  • @bmike weit überlegen: Ja, aber ältere FTP-Server unterstützen dies möglicherweise nicht sftp.

Antwort

Ich musste mehr als 22.000 Webcam-Bilder von meinem Webserver herunterladen Eine Herausforderung für den Finder und mein FTP-Programm CyberDuck.

Also habe ich Folgendes getan (basierend auf der Antwort von @bmike):

mkdir ~/Desktop/image-dump-myserver ftp ftp://[email protected] # enter password # You"re now in the ftp console (where the world is still okay) # Set the local folder lcd ~/Desktop/image-dump-myserver # cd into the desired folder (`ls`, `pwd` etc. all work here) cd /httpdocs/images # Toggle the interactive mode prompt # Download the desired files (all the images in my case) mget *.jpg 

Anschließend werden die Dateien in den gewünschten Ordner heruntergeladen:

local: image1433509292_1582.jpg remote: image1433509292_1582.jpg 229 Entering Extended Passive Mode (|||50001|) 150 Opening BINARY mode data connection for image1433509292_1582.jpg (63626 bytes) 100% |***********************************| 63626 1.51 MiB/s 00:00 ETA 226 Transfer complete 63626 bytes received in 00:00 (0.98 MiB/s) local: image1427279963_0841.jpg remote: image1427279963_0841.jpg 229 Entering Extended Passive Mode (|||50053|) 150 Opening BINARY mode data connection for image1427279963_0841.jpg (67194 bytes) 100% |***********************************| 67194 1.64 MiB/s 00:00 ETA 226 Transfer complete 67194 bytes received in 00:00 (1.04 MiB/s) local: image1439798493_1783.jpg remote: image1439798493_1783.jpg 229 Entering Extended Passive Mode (|||50357|) 150 Opening BINARY mode data connection for image1439798493_1783.jpg (48876 bytes) 100% |***********************************| 48876 1.80 MiB/s 00:00 ETA 226 Transfer complete 48876 bytes received in 00:00 (996.81 KiB/s) .... 

Antwort

Ich verwende

wget -r -l 10 --ftp-user="FTP_USER" --ftp-password="FTP_PASSWORD" \ ftp://ftp.server.com/folder_to_download/* 

Leider unterstützt wget keine parallelen Downloads.

Antwort

Befolgen Sie diese Anweisung:

Typ

ftp 

dann bist du in ftp und siehst aus wie

ftp> 

dann öffnest du die IP des Servers

ftp> open xx.xxx.xxx.xx 

dann wird es a sk als Benutzername geben Sie

Name:(your ftp server): your_username 

an, dann werden Sie nach dem Passwort gefragt

Password: your_password 

Dann sollten Sie angemeldet sein und die ftp> -Shell erneut sehen. Sie können „ls“ eingeben, um alle Dateien aufzulisten, und Sie können wie in inix mit cd

navigieren, wenn Sie Ihren Dateinamen gefunden haben. Sie können ihn herunterladen Mit

ftp> get filename 

et voila wird die Datei in das Verzeichnis heruntergeladen, in dem Sie die Shell-Region geöffnet haben.

Sie können Directorys nicht herunterladen, aber Sie Sie können in Ihr Verzeichnis navigieren und mehrere Dateien herunterladen, z. B. alle Dateien.

Aufgabe: Mehrere Dateien herunterladen

Sie müssen den folgenden Befehl mget verwenden, um mehrere Dateien vom Remote-FTP-Server auf den lokalen Server zu kopieren System. Möglicherweise werden Sie vor der Übertragung jeder Datei zur Eingabe einer Ja / Nein-Antwort (J / N) aufgefordert (Sie können die Eingabeaufforderung deaktivieren, indem Sie die Option -i an den FTP-Client übergeben). Geben Sie zum Herunterladen aller Dateien Folgendes ein: ftp> mget *

Informationen von http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ Prost

Kommentare

  • Das FTP-Unix-Tool wurde aus OS X entfernt (in Sierra, glaube ich?).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.