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?).