שימוש ב-cURL להורדת קבצים מרוחקים משורת הפקודה
תוכן עניינים:
- הורד קבצי התאמה מדויקת עם סלסול -O
- שמירה של קובץ מרוחק בשם אחר עם curl -o
- הורדת מספר קבצים במקביל עם curl
ניתן להשתמש בכלי שורת הפקודה העוצמתי של curl כדי להוריד קבצים כמעט מכל שרת מרוחק. משתמשי שורת פקודה ותיקים יודעים שזה יכול להיות שימושי עבור מגוון רחב של מצבים, אבל כדי לשמור על דברים פשוטים, רבים יגלו שהורדת קובץ עם סלסול יכולה להיות חלופה מהירה יותר לשימוש בדפדפן אינטרנט או בלקוח FTP מהצד של ה-GUI של Mac OS X (או לינוקס).זה מועיל למצבים מקומיים, אבל יש ערך מיוחד אם אתה במצב שבו אתה צריך להוריד משהו ל-Mac מרוחק כאשר אתה מחובר דרך SSH.
למטרות הדרכה זו, נתמקד בעיקר בהורדת קבצים משני פרוטוקולי HTTP ו-SFTP הנפוצים, אם כי יש לציין כי cURL תומך בפרוטוקולים רבים נוספים. למרות שקל להשתמש בסלסול, מומלץ להכיר קצת את שורת הפקודה.
הורד קבצי התאמה מדויקת עם סלסול -O
שימוש באותיות גדולות -O עם curl מוריד את הקובץ מהשרת המרוחק תוך שמירה על שם הקובץ המדויק, התחביר הבסיסי לכך הוא הבא:
curl -O
זה אומר שאם קובץ ה-URL שצוין נקרא "sample.zip" הוא יוריד עם שם הקובץ "sample.zip", ואם הקובץ נקרא משהו עצום ומסובך כמו "LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt" בשרת המרוחק, זה יישמר עם השם המדויק הזה במחשב המקומי. שמות קבצים ארוכים יותר לרוב מטופלים בצורה טובה יותר עם דגל -o במקום -O, שבו נטפל בקרוב.
קוראים רגילים עשויים לזכור שהשתמשנו בפקודה curl -O כאשר הסברנו כיצד לחלץ את תוכן האודיו בפועל מקובץ סטרימינג m3u.
התחלת הורדה כלשהי עם תלתל מציגה את אחוז ההעברה, זמן ההורדה והזמן שנותר, ואת מהירות ההעברה.
צילום המסך מציע ייצוג טוב יותר מהדוגמה שהודבקה למטה, אבל הוא נראה בערך כך:
% סה"כ % שהתקבלו % Xferd מהירות ממוצעת זמן זמן זמן טעינה נוכחית העלאה סה"כ הוצאה מהירות שמאל 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k
עם מהירות ההעברה שמראה שאתה יכול להפנות את הפלט של curl ל-/dev/null ולהשתמש בו כדי לבדוק את מהירות החיבור לאינטרנט, אבל לפקודת wget יש סרגל העברה קל יותר לקריאה ולעקוב, ולכן wget טוב יותר מתאים למשימה זו.
שמירה של קובץ מרוחק בשם אחר עם curl -o
שימוש באותיות קטנות -o יאפשר לך לציין שם קובץ שונה עבור הקובץ שהורדת מאשר איך הוא נקרא בשרת המרוחק. זה יכול להיות מועיל כדי לצמצם שמות קבצים ארוכים או פשוט לתייג משהו כדי שיהיה קל יותר למצוא אותו בעצמך. התחביר הכללי יהיה:
curl -o
לדוגמה, אם ברצונך לשמור קובץ IPSW של iOS שמצאת רשום בשרתי אפל מבלי שיהיה לך את השם המלא הארוך, תוכל להשתמש בשורות הבאות:
curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ips
זה יוריד את הקובץ "iPhone5, 3_7.0.4_11B554a_Restore.ipsw" אך נקרא קצר יותר בתור הקובץ המשמעותי יותר "iPhone5C-704.ipsw".
אם אתה מעדיף לא לשמור את הקובץ בספריית העבודה הנוכחית, ציין נתיב כחלק משם הקובץ כך:
curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg
הורדת מספר קבצים במקביל עם curl
cURL יכול בקלות להוריד מספר קבצים בו-זמנית, כל מה שאתה צריך לעשות הוא לציין יותר מכתובת אתר אחת כמו כך:
curl -O
עבור קבצים עם שמות שונים, או שמתארחים בשרתים שונים, או בנתיבי ספרייה שונים, השתמש בכתובת האתר המלאה, לדוגמה:
curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Licenses/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt
מצד שני, אם שמות הקבצים להורדה משתמשים בשמות מצטברים, אתה יכול להשתמש בסוגריים כדי לציין טווח הורדה, כמו כך:
curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt
זה יתפוס את הקבצים fdl-1.1.txt, fd1-1.2.txt ו-fd1-1.3.txt כולם בו-זמנית ללא צורך לציין כל כתובת URL ייחודית. כמובן שזה עובד רק אם הקבצים נמצאים באותה ספרייה ביחד ובאותו תחום.
מאמת עם תלתל
תוכל גם להעביר אימות עם cURL באמצעות דגל -u:
curl -u user:pass -O ftp://remote_url/file-to-download.zip
זכור שהיסטוריית bash תשמור את הסיסמה בטקסט רגיל בעת שימוש ב-u עם שם משתמש וסיסמה שצוינו, לכן זה לא מומלץ ברוב המצבים. אתה יכול לעקוף את זה על ידי הצבת רווח מול 'תלתל'.אם אינך משתמש במקש הרווח לקידומת הפקודה, סביר להניח שתרצה לרוקן את היסטוריית הפקודות לאחר מכן ליתר ביטחון.
פרוטוקולי curl נתמכים ושימוש מעבר ל-HTTP ו-FTP
כפי שהוזכר קודם לכן, השימוש ב-cURL חורג בהרבה מ-HTTP ו-FTP, שכן הערך בדף הידני של Curl מזכיר פרוטוקולים נוספים בתיאור:
בנוסף, תגלו שניתן להשתמש ב-Curl גם עבור בקשות PUT ו-POST, קובצי Cookie, פרוקסי, מנהרות, הורדות קורות חיים ואפילו קבלת מידע על כותרות HTTP או החלפת סוכן משתמש (ביעילות זיוף) ללא צורך בשימוש בדפדפן אינטרנט ייעודי.
כמו רוב כלי השירות של שורת הפקודה, אתה יכול ללמוד הרבה יותר על curl על ידי זימון דף האיש המתאים עם הפקודה 'man curl'.