Bagaimana cara mengunduh folder melalui FTP di Terminal?

12

Bagaimana cara mengunduh seluruh folder melalui FTP di Terminal?

daviesgeek
sumber

Jawaban:

9

mgetadalah yang terdekat dengan binary FTP yang disertakan. Anda harus mkdir dan cd / lcd dan kemudian mendapatkan semua file daripada mencocokkan pola seperti*

The promptberalih mungkin berguna.

FTP berfungsi dalam direktori, bukan pada direktori sebagai wadah file. Jika Anda benar-benar harus menyelesaikan pekerjaan dan ftp adalah satu-satunya alat yang dapat Anda gunakan - Anda dapat membuat expectskrip untuk menggerakkan ftp untuk Anda.

Untungnya ada alternatif seperti scp| rsync| wgetuntuk mendapatkan seluruh direktori senilai file.

bmike
sumber
Ok ... jadi intinya adalah saya tidak bisa mengunduh seluruh folder sekaligus; Saya harus mengunduh masing-masing file, bukan?
daviesgeek
Ya. Semua orang tidak akan menunjukkan wget, sftp, scp, dan rsync jika ftp melakukan tugasnya.
bmike
Terima kasih ... apakah SFTP mengizinkan pengunduhan folder?
daviesgeek
Ups (maaf) - tidak. sftp adalah sintaks yang sama dan batasan ftp - hanya mengamankan koneksi menggunakan ssh bukan otentikasi ftp.
bmike
Jika Anda terikat pada protokol FTP, Anda dapat menggunakan lftp untuk melakukan pengunduhan pohon direktori secara rekursif. Solusi jadul untuk masalah ini.
Ian C.
7

Cara lain adalah dengan menggunakan curl

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

Saya pikir ini berfungsi, atau file demi file

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

Saya harap ini membantu.

noktec
sumber
OK, terima kasih banyak, tetapi adakah cara melalui FTP untuk melakukan ini?
daviesgeek
Luar biasa! Saya tidak mengetahui kecenderungan FTP curl. Terima kasih!
bmike
Ya ... saya juga. Saya mungkin akan lebih sering menggunakannya.
daviesgeek
2
Saya mencoba saran Anda tetapi mendapatkan ini:curl: (78) RETR response: 550
Omer
1
curlsama sekali tidak bisa menangani ini. wgetbisa.
Ken Sharp
3

Gunakan scp (dokumentasi) atau sftp (dokumentasi)

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory
ghoppe
sumber
Bukan itu yang saya tanyakan. Pertanyaan saya adalah: Bagaimana cara mengunduh folder melalui FTP di Terminal? Dengan kata lain, perintah apa dalam FTP yang saya gunakan untuk mengunduh folder?
daviesgeek
2
sftp jauh lebih unggul daripada FTP +1
bmike
1
@bmike: ya, tetapi server ftp lama mungkin tidak mendukung sftp.
PLL
3

Saya harus mengunduh 22'000 + gambar webcam dari server web saya, yang merupakan sedikit tantangan bagi Finder dan program FTP saya CyberDuck.

Jadi saya melakukan yang berikut (berdasarkan jawaban @ 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

Kemudian file sedang diunduh ke folder yang diinginkan:

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)  
....  
Besi
sumber
3

saya menggunakan

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

Sayangnya wgettidak mendukung unduhan paralel.

oussama fahd
sumber
0

ikuti instruksi ini:

Tipe

ftp

maka Anda berada di ftp terlihat seperti

ftp>

maka Anda membuka ip server

ftp> open xx.xxx.xxx.xx

maka ia akan meminta nama pengguna, Anda akan berikan

Name:(your ftp server): your_username

lalu akan dimintai kata sandi

Password:  your_password

maka Anda harus login dan melihat shell ftp> lagi, Anda dapat mengetik "ls" untuk daftar semua file dan Anda dapat menavigasi seperti inix dengan cd

ketika Anda menemukan nama file, Anda dapat mengunduhnya

ftp> get filename

dan voila, file tersebut akan diunduh ke direktori tempat Anda membuka shell secara lokal

Anda tidak dapat mengunduh direktori, tetapi Anda dapat menavigasi ke direktori Anda dan mengunduh beberapa mis semua file

Tugas: Unduh Banyak File

Anda perlu menggunakan perintah mget sebagai berikut untuk menyalin beberapa file dari server ftp jauh ke sistem lokal. Anda mungkin diminta untuk jawaban ya / tidak (Y / N) sebelum mentransfer setiap file (Anda dapat menonaktifkan prompt dengan meneruskan opsi -i ke ftp client). Untuk mengunduh semua file, masukkan: ftp> mget *

informasi dari http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ sorakan

John Smith
sumber
Alat ftp unix telah dihapus dari OS X (di Sierra, saya kira?).
benwiggy