Menggunakan cURL untuk Muat Turun Fail Jauh daripada Baris Perintah

Isi kandungan:

Anonim

Alat baris arahan curl yang berkuasa boleh digunakan untuk memuat turun fail dari hampir mana-mana pelayan jauh. Pengguna baris arahan lama tahu ini boleh berguna untuk pelbagai situasi, tetapi untuk memastikan perkara mudah, ramai akan mendapati bahawa memuat turun fail dengan curl selalunya boleh menjadi alternatif yang lebih cepat untuk menggunakan pelayar web atau klien FTP dari sisi GUI Mac OS X (atau linux).Ini berguna untuk situasi setempat, tetapi terdapat nilai tertentu jika anda berada dalam situasi di mana anda perlu memuat turun sesuatu ke Mac jauh apabila disambungkan melalui SSH.

Untuk tujuan panduan ini, kami akan memberi tumpuan terutamanya pada memuat turun fail daripada dua protokol HTTP dan SFTP yang biasa ditemui, walaupun perlu diingat bahawa cURL menyokong lebih banyak protokol. Walaupun curl mudah digunakan, mempunyai sedikit pengetahuan tentang baris arahan adalah disyorkan.

Muat turun Fail Padanan Tepat dengan curl -O

Menggunakan bendera -O huruf besar dengan curl memuat turun fail daripada pelayan jauh sambil mengekalkan nama fail yang tepat, sintaks asas untuk ini ialah yang berikut:

curl -O

Ini bermakna jika fail URL yang ditentukan dinamakan "sample.zip" ia akan memuat turun dengan nama fail "sample.zip", dan jika fail itu dinamakan sesuatu yang besar dan rumit seperti "LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt" pada pelayan jauh, ia akan menyimpan dengan nama yang tepat pada mesin tempatan. Nama fail yang lebih panjang selalunya lebih baik dikendalikan dengan bendera -o berbanding -O, yang akan kami atasi sebentar lagi.

Pembaca biasa mungkin ingat bahawa kami menggunakan perintah curl -O semasa menerangkan cara mengekstrak kandungan audio sebenar daripada fail penstriman m3u.

Memulakan sebarang muat turun dengan curl menunjukkan peratusan yang dipindahkan, masa yang dibelanjakan untuk memuat turun dan baki masa serta kelajuan pemindahan.

Tangkapan skrin menawarkan gambaran yang lebih baik daripada contoh yang ditampal di bawah, tetapi ia kelihatan seperti ini:

% Jumlah % Diterima % Xferd Purata Kelajuan Masa Masa Masa Muat Naik Semasa Muat Naik Jumlah Dibelanjakan Kelajuan Kiri 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k

Dengan kelajuan pemindahan yang menunjukkan anda boleh mengubah hala output curl ke /dev/null dan menggunakannya untuk menguji kelajuan sambungan internet, tetapi arahan wget mempunyai bar pemindahan yang lebih mudah dibaca dan diikuti oleh itu wget adalah lebih baik sesuai untuk tugasan itu.

Menyimpan Fail Jauh dengan Nama Berbeza dengan curl -o

Menggunakan bendera huruf kecil -o akan membolehkan anda menentukan nama fail yang berbeza untuk fail yang dimuat turun daripada cara ia dinamakan pada pelayan jauh. Ini boleh membantu untuk mengurangkan nama fail yang panjang atau hanya melabel sesuatu supaya lebih mudah dicari sendiri. Sintaks umum ialah:

curl -o

Sebagai contoh, jika anda ingin menyimpan fail IPSW iOS yang anda dapati tersenarai pada pelayan Apple tanpa mempunyai nama penuh yang panjang, anda boleh menggunakan yang berikut:

curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ipsw

Ini akan memuat turun fail “iPhone5, 3_7.0.4_11B554a_Restore.ipsw” tetapi dinamakan lebih pendek sebagai “iPhone5C-704.ipsw” yang lebih bermakna.

Jika anda lebih suka tidak menyimpan fail ke direktori kerja sekarang, tentukan laluan sebagai sebahagian daripada nama fail seperti:

curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg

Memuat Turun Berbilang Fail Secara serentak dengan curl

cURL boleh memuat turun berbilang fail pada masa yang sama dengan mudah, anda hanya perlu menentukan lebih daripada satu URL seperti itu:

curl -O

Untuk fail dengan nama yang berbeza, atau dihoskan pada pelayan yang berbeza, atau dalam laluan direktori yang berbeza, gunakan URL lengkap, contohnya:

curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Lesen/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt

Sebaliknya, jika nama fail yang hendak dimuat turun menggunakan penamaan tambahan, anda boleh menggunakan kurungan untuk menentukan julat muat turun, seperti:

curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt

Ini akan mengambil fail fdl-1.1.txt, fd1-1.2.txt dan fd1-1.3.txt kesemuanya pada masa yang sama tanpa perlu menentukan setiap URL unik. Sudah tentu ini hanya berfungsi jika fail berada dalam direktori yang sama bersama-sama dan pada domain yang sama.

Mengesah dengan curl

Anda juga boleh lulus pengesahan dengan cURL dengan menggunakan bendera -u:

curl -u user:pass -O ftp://remote_url/file-to-download.zip

Perlu diingat bahawa sejarah bash akan menyimpan kata laluan dalam teks biasa apabila menggunakan -u dengan nama pengguna dan kata laluan yang ditentukan, oleh itu ini tidak disyorkan untuk kebanyakan situasi. Anda boleh mengatasinya dengan meletakkan ruang di hadapan 'curl'.Jika anda tidak menggunakan bar ruang untuk menetapkan awalan arahan, anda mungkin mahu mengosongkan sejarah arahan selepas itu untuk selamat.

Protokol curl yang disokong & Penggunaan Melangkaui HTTP & FTP

Seperti yang dinyatakan sebelum ini, penggunaan cURL melangkaui HTTP dan FTP, kerana entri halaman manual curl menyebut protokol tambahan dalam keterangan:

Selain itu, anda akan mendapati bahawa curl juga boleh digunakan untuk permintaan PUT dan POST, kuki, proksi, terowong, sambung muat turun dan juga merebut maklumat pengepala HTTP atau menukar ejen pengguna (menipu dengan berkesan) tanpa perlu menggunakan pelayar web khusus.

Seperti kebanyakan utiliti baris perintah, anda boleh mengetahui lebih lanjut tentang curl dengan memanggil halaman manual yang sesuai dengan arahan ‘man curl’.

Menggunakan cURL untuk Muat Turun Fail Jauh daripada Baris Perintah