Come faccio a scaricare le cartelle tramite FTP in Terminal?


Risposte:


9

mgetè il più vicino che puoi ottenere con il binario FTP incluso. Devi mkdir e cd / lcd e quindi ottenere tutti i file che corrispondono a un modello come*

L' promptinterruttore può essere utile.

FTP funziona all'interno di una directory, non su directory come contenitori di file. Se dovevi assolutamente fare il lavoro e ftp era l'unico strumento che potevi usare - potresti mettere insieme uno expectscript per guidare ftp per te.

Per fortuna ci sono alternative come scp| rsync| wgetper ottenere intere directory di file.


Ok ... quindi la linea di fondo è che non riesco a scaricare un'intera cartella contemporaneamente; Devo scaricare i singoli file, giusto?
daviesgeek,

Sì. Tutti non mostrerebbero wget, sftp, scp e rsync se ftp fosse all'altezza del compito.
bmike

Grazie ... SFTP consente il download di cartelle?
daviesgeek,

Oops (scusate) - no. sftp è la stessa sintassi e le stesse limitazioni di ftp - solo per proteggere la connessione usando ssh invece dell'autenticazione ftp.
bmike

Se si è vincolati al protocollo FTP, è possibile utilizzare lftp per eseguire un download ricorsivo di un albero di directory. Soluzione vecchia scuola a questo problema.
Ian C.

7

Un altro modo è usare l'arricciatura

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

Penso che funzioni o file per file

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

Spero che questo abbia aiutato.


OK, grazie mille, ma c'è un modo via FTP per farlo?
daviesgeek,

Eccezionale! Non ero a conoscenza della propensione FTP di curl. Grazie!
bmike

Sì ... nemmeno io. Probabilmente lo userò più spesso.
daviesgeek,

2
Sto provando il tuo suggerimento ma ricevo questo:curl: (78) RETR response: 550
Omer,

1
curlassolutamente impossibile gestirlo. wgetpuò.
Ken Sharp,

3

Usa scp (documentazione) o sftp (documentazione)

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

Non è quello che sto chiedendo. La mia domanda è: come faccio a scaricare una cartella tramite FTP nel terminale? In altre parole, quali comandi in FTP utilizzo per scaricare una cartella?
daviesgeek,

2
sftp è di gran lunga superiore a FTP +1
bmike

1
@bmike: sì, ma i server ftp meno recenti potrebbero non supportare sftp.
PLL

3

Ho dovuto scaricare 22'000 + immagini di webcam dal mio server web, il che è un po 'una sfida sia per il Finder che per il mio programma FTP CyberDuck.

Quindi ho fatto quanto segue (in base alla risposta di @ bmike):

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

Quindi i file vengono scaricati nella cartella desiderata:

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

3

sto usando

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

Sfortunatamente wgetnon supporta download paralleli.


0

seguire queste istruzioni:

genere

ftp

allora sei nel formato ftp

ftp>

quindi apri l'ip del server

ftp> open xx.xxx.xxx.xx

quindi chiederà il nome utente, che fornirai

Name:(your ftp server): your_username

quindi chiederà la password

Password:  your_password

quindi dovresti aver effettuato l'accesso e vedere di nuovo la shell ftp>, puoi digitare "ls" per elencare tutti i file e puoi navigare come in inix con cd

quando hai trovato il tuo nome file puoi scaricarlo con

ftp> get filename

et voilà, il file verrà scaricato nella directory da cui hai aperto la shell localmente

non puoi scaricare directory, ma puoi navigare nella tua directory e scaricare più file, ad esempio tutti i file

Attività: scaricare più file

È necessario utilizzare il comando mget come segue per copiare più file dal server ftp remoto al sistema locale. È possibile che venga richiesta una risposta sì / no (S / N) prima di trasferire ciascun file (è possibile disabilitare la richiesta passando l'opzione -i al client ftp). Per scaricare tutti i file, immettere: ftp> mget *

informazioni da http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers


Lo strumento ftp unix è stato rimosso da OS X (in Sierra, penso?).
benwiggy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.