Wie lade ich Ordner über FTP in Terminal herunter?


Antworten:


7

mgetist die nächstgelegene, die Sie mit der mitgelieferten FTP-Binärdatei erhalten können. Sie müssen mkdir und cd / lcd und dann alle Dateien abrufen, als ein Muster wie entsprechen*

Der promptToggle kann sich als nützlich erweisen.

FTP funktioniert in einem Verzeichnis, nicht in Verzeichnissen als Container von Dateien. Wenn Sie den Job unbedingt erledigen mussten und FTP das einzige Tool war, das Sie verwenden konnten, konnten Sie ein expectSkript zusammensetzen, um FTP für Sie zu betreiben.

Zum Glück gibt es Alternativen wie scp| rsync| wgetganze Verzeichnisse im Wert von Dateien zu bekommen.


Ok ... unterm Strich kann ich also nicht einen ganzen Ordner gleichzeitig herunterladen. Ich muss die einzelnen Dateien herunterladen, oder?
Daviesgeek

Jep. Jeder würde wget, sftp, scp und rsync nicht anzeigen, wenn ftp der Aufgabe gewachsen wäre.
bmike

Danke ... erlaubt SFTP das Herunterladen von Ordnern?
Daviesgeek

Ups (sorry) - nein. SFTP hat die gleiche Syntax und dieselben Einschränkungen wie FTP - es wird lediglich die Verbindung mit SSH anstelle der FTP-Authentifizierung gesichert.
bmike

Wenn Sie an das FTP-Protokoll gebunden sind, können Sie mit lftp einen rekursiven Download eines Verzeichnisbaums durchführen. Old School-Lösung für dieses Problem.
Ian C.

7

Eine andere Möglichkeit ist die Verwendung von Locken

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.


OK, vielen Dank, aber gibt es eine Möglichkeit, dies über FTP zu tun?
Daviesgeek

Genial! Mir war die FTP-Neigung von curl nicht bekannt. Vielen Dank!
bmike

Ja ... ich auch nicht. Ich werde es wahrscheinlich öfter benutzen.
Daviesgeek

2
Ich versuche Ihren Vorschlag, erhalte aber Folgendes:curl: (78) RETR response: 550
Omer

1
curlabsolut nicht damit umgehen können. wgetkönnen.
Ken Sharp

3

Verwendung scp (Dokumentation) oder sftp (Dokumentation)

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

Das frage ich nicht. Meine Frage ist: Wie lade ich einen Ordner über FTP in Terminal herunter? Mit anderen Worten, welche FTP-Befehle verwende ich zum Herunterladen eines Ordners?
Daviesgeek

2
sftp ist FTP +1 weit überlegen
bmike

1
@bmike: ja, aber ältere FTP-Server unterstützen möglicherweise kein SFTP.
PLL

3

Ich musste über 22'000 Webcam-Bilder von meinem Webserver herunterladen, was sowohl für den Finder als auch für mein FTP-Programm CyberDuck eine Herausforderung darstellt.

Also habe ich folgendes gemacht (basierend auf @ bmikes Antwort):

mkdir ~/Desktop/image-dump-myserver
ftp ftp://myuser@myserver.com
# 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

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

0

Folge dieser Anleitung:

Art

ftp

dann siehst du in ftp aus wie

ftp>

dann öffnest du die IP des Servers

ftp> open xx.xxx.xxx.xx

Dann werden Sie nach dem Benutzernamen gefragt, den Sie angeben

Name:(your ftp server): your_username

dann wird nach dem Passwort gefragt

Password:  your_password

dann sollten sie eingeloggt sein und die ftp> shell wieder 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, können Sie ihn mit herunterladen

ftp> get filename

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

Sie können keine Verzeichnisse herunterladen, aber Sie könnten in Ihr Verzeichnis navigieren und mehrere Dateien herunterladen, z. B. alle

Aufgabe: Mehrere Dateien herunterladen

Sie müssen den Befehl mget wie folgt verwenden, um mehrere Dateien vom Remote-FTP-Server auf das lokale System zu kopieren. Möglicherweise werden Sie vor dem Übertragen der einzelnen Dateien 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


0

ich benutze

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

wgetUnterstützt leider keine parallelen Downloads.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.