Come faccio a scaricare un'intera cartella tramite FTP nel Terminale?
Come faccio a scaricare un'intera cartella tramite FTP nel Terminale?
Risposte:
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' prompt
interruttore 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 expect
script per guidare ftp per te.
Per fortuna ci sono alternative come scp
| rsync
| wget
per ottenere intere directory di file.
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.
curl: (78) RETR response: 550
curl
assolutamente impossibile gestirlo. wget
può.
Usa scp
(documentazione) o sftp
(documentazione)
scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
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)
....
sto usando
wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
ftp://ftp.server.com/folder_to_download/*
Sfortunatamente wget
non supporta download paralleli.
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