Cum descarc un folder întreg prin FTP în Terminal?
Răspuns
mget
este cel mai apropiat pe care îl puteți obține cu binarul FTP inclus. Trebuie să mkdir și cd / lcd și apoi să obțineți toate fișierele decât să se potrivească cu un model precum *
prompt
comutarea poate fi utilă.
FTP funcționează într-un director, nu pe directoare ca containere de fișiere. Dacă absolut trebuia să faceți treaba și ftp a fost singurul instrument pe care l-ați putea folosi – ați putea cobora împreună un script expect
pentru a conduce ftp pentru dvs.
Din fericire, există alternative precum scp
| rsync
| wget
pentru a obține directoare întregi în valoare de fișiere.
Comentarii
- Ok … deci linia de jos este că pot ' nu descărcați un dosar întreg simultan; Trebuie să descarc fișierele individuale, nu?
- Da. Toată lumea nu ar ' nu arăta wget, sftp, scp și rsync dacă ftp ar fi la înălțimea sarcinii.
- Mulțumesc … permite SFTP descărcarea folderelor?
- Hopa (îmi pare rău) – nu. sftp este aceeași sintaxă și limitări ale ftp – doar securizarea conexiunii folosind ssh în loc de autentificare ftp.
- Dacă ' sunteți legat de protocolul FTP, puteți utilizați lftp pentru a face o descărcare recursivă a unui arbore de directoare. Soluție de școală veche la această problemă.
Răspuns
Un alt mod este să folosești curl
curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*
Cred că funcționează sau fișier cu fișier
curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip
Sper că acest lucru a ajutat.
Comentarii
- OK, vă mulțumesc foarte mult, dar există o modalitate prin FTP de a face acest lucru?
- Minunat! Nu știam de proclivitatea FTP a curl '. Mulțumesc!
- Da … nici eu nu. Eu ' probabil îl voi folosi mai des.
- Eu ' Încerc sugestia dvs., dar primesc acest lucru:
curl: (78) RETR response: 550
-
curl
absolut nu poate rezolva această problemă .wget
can.
Răspuns
Utilizați scp
(documentare) sau sftp
(documentare)
scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
Comentarii
- Că ' nu este ceea ce îmi cer '. Întrebarea mea este: Cum descarc un folder prin FTP în Terminal? Cu alte cuvinte, ce comenzi din FTP folosesc pentru a descărca un folder?
- sftp este mult superior FTP +1
- @bmike: da, dar este posibil ca serverele ftp mai vechi să nu accepte sftp.
Răspuns
A trebuit să descarc peste 22 „000 de imagini cu webcam de pe serverul meu web, care este o provocare atât pentru Finder, cât și pentru programul meu FTP CyberDuck.
Așa că am făcut următoarele (pe baza răspunsului lui @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
Apoi fișierele sunt descărcate în folderul dorit:
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) ....
Răspuns
Folosesc
wget -r -l 10 --ftp-user="FTP_USER" --ftp-password="FTP_PASSWORD" \ ftp://ftp.server.com/folder_to_download/*
Din păcate, wget
nu acceptă descărcări paralele.
Răspuns
urmați această instrucțiune:
tastați
ftp
atunci vă aflați în ftp arătând ca
ftp>
apoi deschideți ip-ul serverului
ftp> open xx.xxx.xxx.xx
atunci va fi sk pentru numele de utilizator, veți furniza
Name:(your ftp server): your_username
apoi va cere parola
Password: your_password
atunci ar trebui să vă conectați și să vedeți din nou shell-ul ftp>, puteți tasta „ls” pentru a lista toate fișierele și puteți naviga ca în inix cu cd
când ați găsit numele fișierului, îl puteți descărca cu
ftp> get filename
și voila, fișierul va fi descărcat în directorul din care ați deschis shell-ul local din
nu puteți descărca directoare, dar ar putea naviga în directorul dvs. și descărca mai multe, de exemplu, toate fișierele
Sarcină: Descărcați mai multe fișiere
Trebuie să utilizați comanda mget după cum urmează pentru a copia mai multe fișiere de pe serverul ftp de la distanță în local sistem. Este posibil să vi se solicite un răspuns da / nu (DA / N) înainte de a transfera fiecare fișier (puteți dezactiva promptul trecând opțiunea -i către clientul ftp). Pentru a descărca toate fișierele, introduceți: ftp> mget *
informații din http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers
Comentarii
- Instrumentul ftp unix a fost eliminat din OS X (în Sierra, cred?).