Unduh file ZIP dengan perintah curl

Jawaban:

36

Saya menggunakan curl -LOdan itu bekerja dengan baik. wgetbekerja juga.

Ziyaddin Sadigov
sumber
Bekerja untukku. menggunakan Windows 7
fedmich
20

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

jangan
sumber
1
Bisakah sang downvoter menjelaskan? Atau poster yang lain?
don.joey
4
Bisakah Anda menjelaskan mengapa wgetbukan curl?
Jorge Bucaran
1
kurang baris perintah (jika Anda peduli) - yang berarti lebih sedikit pilihan, Tetapi perbedaan terbesar adalah bahwa wget mendukung unduhan rekursif
Ran Davidovitz
Tidak tahu mengapa, tapi saya mengalami kesalahan saat mengeluarkan unzipfile yang diunduh curl, dan itu berhasil dengan baikwget
Dinei
15

Anda dapat gunakan:

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

Menghemat sebagai: xampp-cli-master.zip

  • gunakan -Ljika ditemukan pengalihan.
  • gunakan -Ountuk nama file jarak jauh ( master.zip)
  • gunakan -J(gunakan dengan -O) untuk memungkinkan nama file tajuk jauh ( xampp-cli-master.zip)


Atau gunakan -ountuk membuat nama file Anda sendiri:

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

Menghemat sebagai: MyFilename.zip

Catatan: (GitHub mendukung SSL - gunakan https://)


Anda juga bisa menggunakan curlrc file config atau alias perintah CURL yang akan digunakan curl -O -Luntuk memungkinkannya bekerja mirip dengan WGET.

Konsultasikan: https://curl.haxx.se/docs/manpage.html#OPTIONS (Lihat: -O , -J , -L , -o )

Perhatikan peringatan menggunakan CURL dengan opsi -J:

Tidak ada upaya untuk men-decode%-followingences (belum) di nama file yang disediakan, jadi opsi ini dapat memberi Anda nama file yang agak tidak terduga.

PERINGATAN : Lakukan penggunaan opsi ini secara bijaksana, terutama pada Windows. Server jahat dapat mengirimi Anda nama DLL atau file lain yang mungkin dapat dimuat secara otomatis oleh Windows atau perangkat lunak pihak ketiga.

bshea
sumber
5

Jika Anda ingin mengunduh file gunakan wget [option]... [URL]...saja.

Untuk informasi lebih lanjut tentang opsi, cukup ketik ini ke Terminal Anda: man wget

Untuk tujuan Anda:

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

Perhatikan bahwa file .zip akan disimpan di direktori Anda saat ini.

Meintjes
sumber
1
Akan sangat membantu untuk menjelaskan keuntungan menggunakan wgetlebih dari curl. Untuk siapa pun yang bertanya-tanya perbedaan antara keduanya lihat di sini .
Jorge Bucaran
@JorgeBucaran Saya membaca perbandingan yang ditulis oleh penulis curlyang juga berkontribusi wgetdalam peran kecil. Satu kelalaian mencolok (berdasarkan satu kali proyek kecil saya) adalah bahwa wget adalah 10 kali lebih cepat dari curl (<2 detik vs 12 detik) mengambil waktu matahari terbit dan terbenam darihttps://www.timeanddate.com
WinEunuuchs2Unix
Jadi, kadang-kadang ketika Anda menggunakan wget dan file tidak disajikan secara langsung tetapi url memberi tahu layanan tempat menemukan dan melayani file, yang akhirnya Anda unduh adalah html. Jadi ikal lebih baik untuk beberapa file sebagai gantinya
Zloy Smiertniy
3

Untuk mengunduh file di GitHub (atau situs lain mana pun yang membuat pengalihan) menggunakan curl, Anda harus lulus -L(Ikuti pengalihan), jadi gunakan:

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

Juliano Petronetto
sumber
1

"curl -LOk" membuatnya menggunakan protokol tidak aman (-k), menonaktifkan pemeriksaan sertifikat SSL (yang gagal karena jalur yang salah tidak cocok dengan sertifikat), dan membuat file output menggunakan nama file (-O) yang diusulkan dari server jauh (juga tidak aman). Menurut pendapat saya, server sebaiknya dikonfigurasi untuk membuat alias redirect lokal jika diperlukan, untuk menghindari harus melewati bagian yang tidak sesuai dari URL. Tetapi pengalihan dibuat menggunakan pengalihan HTTP saja (HTTP error 30x), yang menyebabkan masalah untuk menggulung yang tidak mengikuti (secara default) pengalihan (tidak aman) ini, dan opsi (-k) menonaktifkan pemeriksaan keamanan ini. Jadi alih-alih menggunakan pengalihan HTTP (dipindahkan secara permanen), tambahkan beberapa tautan internal pada sistem file server. Jika ini diperlukan karena URL sebenarnya di-host di server fisik lain tanpa akses langsung antara sistem file mereka, Anda harus menggunakan nama DNS lain untuk host ini, sehingga klien akan menanyakan yang benar secara langsung, tanpa pengalihan. Kemudian perbaiki halaman web Anda (Anda dapat menggunakan log server web Anda untuk melihat di mana pengalihan HTTP 30x dikembalikan dan halaman web mana yang perlu diperiksa dan diperbarui). Memaksa klien untuk menggunakan protokol tidak aman / tidak dicentang bukanlah pilihan yang baik.

Jadi ini jelas merupakan masalah konfigurasi yang sangat buruk di server web: coba hubungi admin mereka untuk memperbaikinya.

verdy_p
sumber
0

baik, kamu bisa menggunakan Axel juga. axel adalah akselerator unduh baris perintah ringan. mendukung HTTP, HTTPS, FTPdan FTPSprotokol. alternatif yang bagus dan lebih cepat.

instal axelmenggunakan:

apt-get install axel

kemudian unduh file Anda dengan:

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

Gunakan opsi -Luntuk mengikuti arahan ulang, Anda juga dapat menggunakan --outputopsi untuk memberikan jalur dan nama ke file zip. Sebagai contoh:

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

Catatan: Gunakan sudo jika Anda tidak memiliki izin untuk menulis ke folder target.

Luigi Lopez
sumber