Come faccio a scaricare un'intera cartella tramite FTP nel terminale?
Come faccio a scaricare un'intera cartella tramite FTP nel terminale?
mget
è il più vicino che puoi ottenere con il binario FTP incluso. Devi mkdir e cd / lcd e poi ottenere tutti i file che corrispondono a un pattern come *
Potrebbe essere utile la commutazione prompt
.
L'FTP funziona all'interno di una directory, non nelle directory come contenitori di file. Se dovessi assolutamente portare a termine il lavoro e ftp fosse l'unico strumento che potevi usare, puoi unire uno script expect
per pilotare ftp per te.
Per fortuna ci sono alternative come scp
| rsync
| wget
per ottenere interi elenchi di file.
Un altro modo è usare curl
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 sia stato di aiuto.
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, che è un po 'una sfida sia per il Finder che per il mio programma FTP CyberDuck.
Così ho fatto quanto segue (basato sulla risposta di @ 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
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)
....
segui questa istruzione:
Tipo
ftp
allora sei in ftp come
ftp>
quindi apri ip del server
ftp> open xx.xxx.xxx.xx
quindi chiederà il nome utente, fornirai
Name:(your ftp server): your_username
quindi chiederà la password
Password: your_password
allora dovresti essere loggato e vedere ftp > shell di nuovo, 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 che hai aperto shell localy da
non puoi scaricare directorys, ma puoi navigare nella tua directory e scaricare più e.g tutti i file
Attività: scarica più file
È necessario utilizzare il comando mget come segue per copiare più file dal server ftp remoto al sistema locale. Potrebbe essere richiesta una risposta sì / no (Y / N) prima di trasferire ciascun file (è possibile disabilitare prompt passando l'opzione -i al client ftp). Per scaricare tutti i file, inserire: ftp > mget *
informazioni dal link applausi
Leggi altre domande sui tag ftp terminal data-transfer