Tải tập tin ZIP bằng lệnh curl


Câu trả lời:



20

Hãy thử wget thay vì curl: wget http://github.com/ziyaddin/xampp/archive/master.zip


1
Downvoter có thể giải thích? Hay là những poster khác?
don.joey

4
Bạn có thể giải thích tại sao wgetthay vì curl?
Jorge Bucaran

1
ít dòng lệnh hơn (nếu bạn quan tâm) - có nghĩa là ít tùy chọn hơn, nhưng sự khác biệt lớn nhất là wget hỗ trợ tải xuống đệ quy
Ran Davidovitz

Không biết tại sao, nhưng tôi đã gặp lỗi khi phát hành unziptệp được tải xuống curlvà nó hoạt động tốt vớiwget
Dinei

15

Bạn có thể dùng:

curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L

Lưu dưới dạng: xampp-cli-master.zip

  • sử dụng -Ltrong trường hợp có một chuyển hướng được tìm thấy.
  • sử dụng -Ocho tên tệp từ xa ( master.zip)
  • sử dụng -J(sử dụng với -O) để cho phép tên tệp tiêu đề từ xa ( xampp-cli-master.zip)


Hoặc sử dụng -ođể tạo tên tệp của riêng bạn:

curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip

Lưu dưới dạng: MyFilename.zip

Lưu ý: (GitHub hỗ trợ SSL - sử dụng https://)


Bạn cũng có thể sử dụng curlrc tệp cấu hình hoặc bí danh lệnh CURL để sử dụng curl -O -Lđể cho phép nó hoạt động tương tự như WGET.

Tham khảo: https://curl.haxx.se/docs/manpage.html#OPTIONS (Xem: -O , -J , -L , -o )

Lưu ý cảnh báo sử dụng CURL với tùy chọn -J:

Không có nỗ lực giải mã% hậu quả (chưa) trong tên tệp được cung cấp, vì vậy tùy chọn này có thể cung cấp cho bạn các tên tệp khá bất ngờ.

CẢNH BÁO : Thực hiện sử dụng hợp lý tùy chọn này, đặc biệt là trên Windows. Một máy chủ giả mạo có thể gửi cho bạn tên của một DLL hoặc tệp khác có thể được tải tự động bởi Windows hoặc một số phần mềm bên thứ ba.


5

Nếu bạn muốn tải về sử dụng tập tin wget [option]... [URL]...thay thế.

Để biết thêm thông tin về các tùy chọn, chỉ cần nhập thông tin này vào Terminal của bạn: man wget

Cho bạn mục đích:

wget http://github.com/ziyaddin/xampp/archive/master.zip

Lưu ý rằng tệp .zip sẽ được lưu trong thư mục hiện tại bạn đang ở.


1
Nó sẽ hữu ích để giải thích những lợi ích của việc sử dụng wgethơn curl. Đối với bất cứ ai tự hỏi sự khác biệt giữa hai xem tại đây .
Jorge Bucaran

@JorgeBucaran Tôi đọc bài so sánh được viết bởi tác giả của curlngười cũng đóng góp wgettrong một vai trò nhỏ. Một thiếu sót rõ ràng (dựa trên dự án nhỏ một lần của tôi) là wget nhanh hơn 10 lần so với curl (<2 giây so với 12 giây) lấy lại thời gian mặt trời mọc và mặt trời lặn từhttps://www.timeanddate.com
WinEunuuchs2Unix 3/03/2017

Vì vậy, đôi khi khi bạn sử dụng wget và tệp không được cung cấp trực tiếp mà thay vào đó, url cho biết một dịch vụ nơi định vị và phục vụ tệp, cuối cùng bạn tải xuống là một html. Vì vậy, curl là tốt hơn cho một số tệp thay vào đó
Zloy Smiertniy

3

Để tải xuống các tệp trong GitHub (hoặc bất kỳ trang web nào thực hiện chuyển hướng) bằng cách sử dụng curl, bạn phải vượt qua -L(Thực hiện theo chuyển hướng), vì vậy hãy sử dụng:

curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip


1

"Curl -LOk" làm cho nó sử dụng các giao thức không an toàn (-k), vô hiệu hóa kiểm tra chứng chỉ SSL (không thành công do đường dẫn không khớp với chứng chỉ) và tạo tệp đầu ra bằng tên tệp (-O) được đề xuất từ ​​máy chủ từ xa (cũng không an toàn). Theo tôi, máy chủ nên được cấu hình tốt hơn để tạo các bí danh chuyển hướng cục bộ ở những nơi cần thiết, để tránh phải vượt qua phần không tuân thủ này của URL. Nhưng việc chuyển hướng được thực hiện chỉ bằng cách sử dụng chuyển hướng HTTP (lỗi HTTP 30x), điều này gây ra sự cố để không theo dõi (theo mặc định) điều này (không an toàn) và tùy chọn (-k) vô hiệu hóa kiểm tra bảo mật này. Vì vậy, thay vì sử dụng chuyển hướng HTTP (di chuyển vĩnh viễn), vui lòng thêm một số liên kết nội bộ trên hệ thống tệp của máy chủ. Nếu điều này là cần thiết vì trên thực tế URL được lưu trữ trên một máy chủ vật lý khác không có quyền truy cập trực tiếp giữa các hệ thống tệp của họ, bạn nên sử dụng tên DNS khác cho máy chủ này, để khách hàng sẽ truy vấn trực tiếp chính xác mà không cần chuyển hướng. Sau đó sửa các trang web của bạn (bạn có thể sử dụng nhật ký máy chủ web của mình để xem nơi chuyển hướng HTTP 30x được trả về và trang web nào có thể cần được kiểm tra và cập nhật). Buộc khách hàng sử dụng các giao thức không an toàn / không được kiểm tra không phải là một lựa chọn tốt.

Vì vậy, đây chắc chắn là một vấn đề về cấu hình rất xấu trên máy chủ web: hãy thử liên hệ với quản trị viên của họ để khắc phục điều đó.


0

tốt, bạn có thể sử dụng Axel là tốt. axel là một trình tăng tốc tải xuống dòng lệnh. nó hỗ trợ HTTP, HTTPS, FTPFTPSgiao thức. nó thay thế tốt đẹp và nhanh hơn.

cài đặt axelbằng:

apt-get install axel

sau đó tải xuống tệp của bạn bằng cách:

axel http://github.com/ziyaddin/xampp/archive/master.zip

0

Sử dụng tùy chọn -Lđể theo dõi chuyển hướng, bạn cũng có thể sử dụng --outputtùy chọn để cung cấp đường dẫn và tên cho tệp zip. Ví dụ:

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

Lưu ý: Sử dụng sudo nếu bạn không có quyền ghi vào thư mục đích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.