Sử dụng cURL để tải xuống tệp từ xa từ dòng lệnh
Mục lục:
- Download Exact Match Files with curl -O
- Lưu tệp từ xa bằng tên khác với curl -o
- Tải xuống nhiều tệp đồng thời với curl
Công cụ dòng lệnh curl mạnh mẽ có thể được sử dụng để tải xuống các tệp từ bất kỳ máy chủ từ xa nào. Những người dùng dòng lệnh lâu năm biết rằng điều này có thể hữu ích trong nhiều tình huống, nhưng để đơn giản hóa mọi thứ, nhiều người sẽ thấy rằng việc tải xuống một tệp có tính năng cuộn tròn thường có thể là một giải pháp thay thế nhanh hơn cho việc sử dụng trình duyệt web hoặc ứng dụng khách FTP từ phía GUI của Mac OS X (hoặc linux).Điều này hữu ích cho các tình huống cục bộ, nhưng sẽ có giá trị cụ thể nếu bạn ở trong tình huống cần tải nội dung nào đó xuống máy Mac từ xa khi được kết nối qua SSH.
Vì mục đích của hướng dẫn này, chúng tôi sẽ tập trung chủ yếu vào việc tải xuống các tệp từ hai giao thức HTTP và SFTP thường gặp, mặc dù cần lưu ý rằng cURL hỗ trợ nhiều giao thức hơn. Mặc dù curl rất dễ sử dụng, nhưng bạn nên có một số kiến thức về dòng lệnh.
Download Exact Match Files with curl -O
Sử dụng cờ -O viết hoa với curl tải xuống tệp từ máy chủ từ xa trong khi vẫn duy trì tên tệp chính xác, cú pháp cơ bản cho điều này là như sau:
curl -O
Điều này có nghĩa là nếu tệp URL đã chỉ định được đặt tên là “sample.zip” thì nó sẽ tải xuống với tên tệp là “sample.zip” và nếu tệp được đặt tên là một cái gì đó to lớn và phức tạp như “LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt” trên máy chủ từ xa, nó sẽ lưu với tên chính xác đó trên máy cục bộ. Tên tệp dài hơn thường được xử lý tốt hơn với cờ -o thay vì -O mà chúng tôi sẽ giải quyết ngay sau đây.
Người đọc thông thường có thể nhớ rằng chúng tôi đã sử dụng lệnh curl -O khi giải thích cách trích xuất nội dung âm thanh thực tế từ tệp phát trực tuyến m3u.
Bắt đầu bất kỳ tải xuống nào với curl hiển thị phần trăm được truyền, thời gian tải xuống và thời gian còn lại cũng như tốc độ truyền.
Ảnh chụp màn hình hiển thị tốt hơn ví dụ được dán bên dưới, nhưng nó trông giống như sau:
% Tổng % Đã nhận % Xferd Tốc độ trung bình Thời gian Thời gian Thời gian Dload hiện tại Tải lên Tổng đã sử dụng Tốc độ còn lại 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k
Với tốc độ truyền cho thấy, bạn có thể chuyển hướng đầu ra của curl sang /dev/null và sử dụng nó để kiểm tra tốc độ kết nối internet, nhưng lệnh wget có thanh truyền dễ đọc và theo dõi hơn, do đó wget tốt hơn phù hợp với nhiệm vụ đó.
Lưu tệp từ xa bằng tên khác với curl -o
Sử dụng cờ -o viết thường sẽ cho phép bạn chỉ định một tên tệp khác cho tệp đã tải xuống so với tên trên máy chủ từ xa. Điều này có thể hữu ích để giảm tên tệp dài hoặc chỉ gắn nhãn thứ gì đó để bạn dễ dàng tìm thấy hơn. Cú pháp chung sẽ là:
curl -o
Ví dụ: nếu bạn muốn lưu tệp IPSW iOS mà bạn tìm thấy được liệt kê trên máy chủ Apple mà không có tên đầy đủ dài dòng, bạn có thể sử dụng cách sau:
curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ipsw
Thao tác này sẽ tải xuống tệp “iPhone5, 3_7.0.4_11B554a_Restore.ipsw” nhưng được đặt tên ngắn hơn là “iPhone5C-704.ipsw” có ý nghĩa hơn.
Nếu bạn không muốn lưu tệp vào thư mục làm việc hiện tại, hãy chỉ định đường dẫn như một phần của tên tệp như sau:
curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg
Tải xuống nhiều tệp đồng thời với curl
cURL có thể dễ dàng tải xuống nhiều tệp cùng lúc, tất cả những gì bạn cần làm là chỉ định nhiều hơn một URL như sau:
curl -O
Đối với các tệp có tên khác hoặc được lưu trữ trên các máy chủ khác hoặc trong các đường dẫn thư mục khác nhau, hãy sử dụng URL đầy đủ, ví dụ:
curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Giấy phép/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt
Mặt khác, nếu tên tệp được tải xuống đang sử dụng cách đặt tên tăng dần, bạn có thể sử dụng dấu ngoặc để chỉ định phạm vi tải xuống, như sau:
curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt
Điều này sẽ lấy tất cả các tệp fdl-1.1.txt, fd1-1.2.txt và fd1-1.3.txt cùng một lúc mà không phải chỉ định từng URL duy nhất. Tất nhiên, điều này chỉ hoạt động nếu các tệp nằm trong cùng một thư mục và trên cùng một miền.
Xác thực bằng curl
Bạn cũng có thể chuyển xác thực bằng cURL bằng cách sử dụng cờ -u:
curl -u user:pass -O ftp://remote_url/file-to-download.zip
Hãy nhớ rằng lịch sử bash sẽ lưu trữ mật khẩu ở dạng văn bản thuần túy khi sử dụng -u với tên người dùng và mật khẩu được chỉ định, do đó điều này không được khuyến nghị trong hầu hết các trường hợp. Bạn có thể khắc phục điều đó bằng cách đặt một khoảng trống phía trước 'curl'.Nếu bạn không sử dụng phím cách để thêm tiền tố vào lệnh, có thể bạn sẽ muốn xóa lịch sử lệnh sau đó để đảm bảo an toàn.
Giao thức curl được hỗ trợ & Cách sử dụng Ngoài HTTP & FTP
Như đã đề cập trước đó, việc sử dụng cURL vượt xa HTTP và FTP, vì mục nhập trang thủ công curl đề cập đến các giao thức bổ sung trong phần mô tả:
Ngoài ra, bạn sẽ thấy rằng curl cũng có thể được sử dụng cho các yêu cầu PUT và POST, cookie, proxy, đường hầm, tiếp tục tải xuống và thậm chí lấy thông tin tiêu đề HTTP hoặc thay đổi tác nhân người dùng (giả mạo một cách hiệu quả) mà không cần sử dụng trình duyệt web chuyên dụng.
Giống như hầu hết các tiện ích dòng lệnh, bạn có thể tìm hiểu thêm về cuộn tròn bằng cách gọi trang hướng dẫn thích hợp bằng lệnh 'man curl'.