ฉันจะดาวน์โหลดทั้งโฟลเดอร์ผ่าน FTP ใน Terminal ได้อย่างไร
ฉันจะดาวน์โหลดทั้งโฟลเดอร์ผ่าน FTP ใน Terminal ได้อย่างไร
คำตอบ:
mget
ใกล้เคียงที่สุดที่คุณจะได้รับด้วยไบนารี FTP ที่รวมอยู่ คุณต้อง mkdir และ cd / lcd แล้วรับไฟล์ทั้งหมดตรงกับรูปแบบที่ชอบ*
prompt
สลับอาจจะมาในที่มีประโยชน์
FTP ทำงานภายในไดเร็กทอรีไม่ใช่ในไดเร็กทอรีเป็นคอนเทนเนอร์ของไฟล์ หากคุณต้องทำงานให้สำเร็จและ ftp เป็นเครื่องมือเดียวที่คุณสามารถใช้ได้คุณสามารถใช้expect
สคริปต์ร่วมกันเพื่อขับเคลื่อน ftp ให้กับคุณ
โชคดีที่มีทางเลือกเช่นscp
| rsync
| wget
เพื่อรับไดเรกทอรีทั้งหมดที่คุ้มค่าของไฟล์
อีกวิธีคือใช้การม้วนงอ
curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*
ฉันคิดว่ามันใช้งานได้หรือไฟล์เป็นไฟล์
curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip
ฉันหวังว่านี่จะช่วยได้
curl: (78) RETR response: 550
curl
ไม่สามารถจัดการกับสิ่งนี้ได้อย่างแน่นอน wget
สามารถ.
ฉันต้องดาวน์โหลดรูปภาพ 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)
....
ฉันใช้
wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
ftp://ftp.server.com/folder_to_download/*
น่าเสียดายที่wget
ไม่รองรับการดาวน์โหลดแบบขนาน
ทำตามคำแนะนำนี้:
ชนิด
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/ ไชโย