ฉันจะดาวน์โหลดโฟลเดอร์ผ่าน FTP ใน Terminal ได้อย่างไร


คำตอบ:


9

mgetใกล้เคียงที่สุดที่คุณจะได้รับด้วยไบนารี FTP ที่รวมอยู่ คุณต้อง mkdir และ cd / lcd แล้วรับไฟล์ทั้งหมดตรงกับรูปแบบที่ชอบ*

promptสลับอาจจะมาในที่มีประโยชน์

FTP ทำงานภายในไดเร็กทอรีไม่ใช่ในไดเร็กทอรีเป็นคอนเทนเนอร์ของไฟล์ หากคุณต้องทำงานให้สำเร็จและ ftp เป็นเครื่องมือเดียวที่คุณสามารถใช้ได้คุณสามารถใช้expectสคริปต์ร่วมกันเพื่อขับเคลื่อน ftp ให้กับคุณ

โชคดีที่มีทางเลือกเช่นscp| rsync| wgetเพื่อรับไดเรกทอรีทั้งหมดที่คุ้มค่าของไฟล์


ตกลง ... ดังนั้นสิ่งที่สำคัญที่สุดคือฉันไม่สามารถดาวน์โหลดทั้งโฟลเดอร์ได้ในครั้งเดียว ฉันต้องดาวน์โหลดแต่ละไฟล์ใช่มั้ย
daviesgeek

ได้. ทุกคนจะไม่แสดง wget, sftp, scp และ rsync หาก ftp ขึ้นอยู่กับภารกิจ
bmike

ขอบคุณ ... SFTP อนุญาตให้ดาวน์โหลดโฟลเดอร์หรือไม่
daviesgeek

อุ๊ปส์ (ขออภัย) - ไม่ sftp เป็นไวยากรณ์และข้อ จำกัด เดียวกันของ ftp - เพียงแค่รักษาความปลอดภัยในการเชื่อมต่อโดยใช้ ssh แทนการตรวจสอบ ftp
bmike

หากคุณผูกพันกับโปรโตคอล FTP คุณสามารถใช้lftpเพื่อดาวน์โหลดทรีไดเรกทอรีแบบเรียกซ้ำ โรงเรียนเก่าแก้ปัญหานี้ได้
เอียนซี

7

อีกวิธีคือใช้การม้วนงอ

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

ฉันคิดว่ามันใช้งานได้หรือไฟล์เป็นไฟล์

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

ฉันหวังว่านี่จะช่วยได้


ตกลงขอบคุณมาก แต่มีวิธีผ่าน FTP เพื่อทำสิ่งนี้หรือไม่?
daviesgeek

! น่ากลัว ฉันไม่ทราบถึงความปรีชา FTP ของ curl ขอบคุณ!
bmike

ใช่ ... ไม่เหมือนกันฉันจะใช้บ่อยกว่านี้
daviesgeek

2
ฉันกำลังลองข้อเสนอแนะของคุณ แต่ได้รับสิ่งนี้:curl: (78) RETR response: 550
Omer

1
curlไม่สามารถจัดการกับสิ่งนี้ได้อย่างแน่นอน wgetสามารถ.
Ken Sharp

3

ใช้scp (เอกสาร)หรือsftp (เอกสาร)

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

นั่นไม่ใช่สิ่งที่ฉันขอ คำถามของฉันคือฉันจะดาวน์โหลดโฟลเดอร์ผ่าน FTP ใน Terminal ได้อย่างไร กล่าวอีกนัยหนึ่งฉันใช้คำสั่งอะไรใน FTP เพื่อดาวน์โหลดโฟลเดอร์
daviesgeek

2
sftp นั้นเหนือกว่า FTP +1 มาก
bmike

1
@bmike: ใช่ แต่เซิร์ฟเวอร์ ftp ที่เก่ากว่าอาจไม่รองรับ sftp
PLL

3

ฉันต้องดาวน์โหลดรูปภาพ 22'000 + เว็บแคมจากเว็บเซิร์ฟเวอร์ซึ่งเป็นเรื่องที่ท้าทายสำหรับ Finder และโปรแกรม FTP CyberDuck ของฉัน

ดังนั้นฉันจึงทำสิ่งต่อไปนี้ (ตามคำตอบของ @ 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

จากนั้นไฟล์จะถูกดาวน์โหลดลงในโฟลเดอร์ที่ต้องการ:

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

ฉันใช้

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

น่าเสียดายที่wgetไม่รองรับการดาวน์โหลดแบบขนาน


0

ทำตามคำแนะนำนี้:

ชนิด

ftp

จากนั้นคุณจะอยู่ในรูปแบบ ftp

ftp>

จากนั้นคุณเปิด ip ของเซิร์ฟเวอร์

ftp> open xx.xxx.xxx.xx

จากนั้นจะขอชื่อผู้ใช้คุณจะให้

Name:(your ftp server): your_username

จากนั้นมันจะขอรหัสผ่าน

Password:  your_password

จากนั้นคุณควรเข้าสู่ระบบและดู ftp> shell อีกครั้งคุณสามารถพิมพ์ "ls" เพื่อแสดงรายการไฟล์ทั้งหมดและคุณสามารถนำทางเหมือน inix ด้วย cd

เมื่อคุณพบชื่อไฟล์คุณสามารถดาวน์โหลดได้

ftp> get filename

และ, ไฟล์จะถูกดาวน์โหลดไปยังไดเรกทอรีที่คุณเปิดเชลล์โลแคลจาก

คุณไม่สามารถดาวน์โหลดไดเร็กตอรี่ได้, แต่คุณสามารถเข้าไปที่ไดเรคทอรีของคุณและดาวน์โหลดไฟล์ได้หลายไฟล์เช่นทุกไฟล์

ภารกิจ: ดาวน์โหลดหลายไฟล์

คุณต้องใช้คำสั่ง mget ดังต่อไปนี้เพื่อคัดลอกไฟล์หลายไฟล์จากเซิร์ฟเวอร์ ftp ระยะไกลไปยังระบบโลคัล คุณอาจได้รับพร้อมท์สำหรับคำตอบใช่ / ไม่ใช่ (Y / N) ก่อนที่จะถ่ายโอนแต่ละไฟล์ (คุณสามารถปิดใช้งานพรอมต์โดยผ่านตัวเลือก -i ไปยังไคลเอนต์ ftp) หากต้องการดาวน์โหลดไฟล์ทั้งหมดให้ป้อน: ftp> mget *

ข้อมูลจากhttp://www.cyberciti.biz/faq/linux-unix-ftp-commands/ ไชโย


เครื่องมือ ftp unix ถูกลบออกจาก OS X (ใน Sierra ฉันคิดว่า?)
benwiggy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.