Како користити цурл за преузимање датотека са Линук командне линије

Линук цурл команда може учинити много више од преузимања датотека. Сазнајте за шта је способан цурл и када бисте га требали користити уместо вгет-а.

цурл вс. вгет : Која је разлика?

Људи се често боре да идентификују релативне снаге вгет и цурл команди. Команде се функционално преклапају. Сваки од њих може да преузме датотеке са удаљених локација, али ту се сличност завршава.

вгет је а фантастичан алат за преузимање садржаја и датотека. Може да преузима датотеке, веб странице и директоријуме. Садржи интелигентне рутине за прелазак преко линкова на веб страницама и рекурзивно преузимање садржаја преко целе веб странице. Ненадмашан је као менаџер преузимања на командној линији.

коврџе задовољава сасвим другачију потребу. Да, може да преузима датотеке, али не може рекурзивно да се креће по веб локацији тражећи садржај за преузимање. Оно што цурл заправо ради је да вам омогућава интеракцију са удаљеним системима тако што постављате захтеве тим системима и преузимате и приказујете њихове одговоре вама. Ти одговори могу бити садржај и датотеке веб странице, али такође могу садржати податке обезбеђене путем веб услуге или АПИ-ја као резултат „питања“ постављеног у цурл захтеву.

А цурл није ограничен на веб локације. цурл подржава преко 20 протокола, укључујући ХТТП, ХТТПС, СЦП, СФТП и ФТП. И вероватно, због свог супериорног руковања Линук цевима, цурл се може лакше интегрисати са другим командама и скриптама.

Аутор цурл-а има веб страницу која описује разлике које види између цурл и вгет.

Инсталирање цурл-а

Од рачунара који су коришћени за истраживање овог чланка, Федора 31 и Мањаро 18.1.0 су већ имали инсталиран цурл. цурл је морао бити инсталиран на Убунту 18.04 ЛТС. На Убунту-у покрените ову команду да бисте је инсталирали:

sudo apt-get install curl

Тхе цурл Версион

Опција –версион чини цурлрепорт својом верзијом. Такође наводи све протоколе које подржава.

curl --version

Преузимање веб странице

Ако покажемо цурл на веб страницу, она ће је преузети за нас.

curl https://www.bbc.com

Али његова подразумевана радња је да га испусти у прозор терминала као изворни код.

  Како издвојити датотеке из .тар.гз или .тар.бз2 датотеке на Линук-у

Пазите: Ако не кажете цурл-у да желите да се нешто сачува као датотека, он ће то увек избацити у прозор терминала. Ако је датотека коју преузима бинарна датотека, исход може бити непредвидљив. Шкољка може покушати да протумачи неке од вредности бајтова у бинарној датотеци као контролне знакове или излазне секвенце.

Чување података у датотеку

Рецимо цурл-у да преусмери излаз у датотеку:

curl https://www.bbc.com  > bbc.html

цурл хттпс://ввв.ббц.цом > ббц.хтмл у прозору терминала” видтх=”646″ хеигхт=”57″ онлоад=”пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”  онеррор=”тхис.онеррор=нулл;пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”></п> <п>Овај пут не видимо преузете информације, оне се шаљу директно у датотеку за нас.  Пошто нема излазног прозора терминала за приказ, цурл емитује скуп информација о напретку.</п> <п>То није урадио у претходном примеру јер би информације о напретку биле расуте по изворном коду веб странице, па га је цурл аутоматски потиснуо.</п> <п>У овом примеру, цурл открива да се излаз преусмерава на датотеку и да је безбедно да генерише информације о напретку.</п> <п><имг срц=

Достављене информације су:

% Укупно: Укупан износ који треба преузети.
% примљених: Проценат и стварне вредности до сада преузетих података.
% Ксферд: Проценат и стварно послато, ако се подаци учитавају.
Просечна брзина преузимања: Просечна брзина преузимања.
Просечна брзина отпремања: Просечна брзина отпремања.
Укупно време: Процењено укупно трајање преноса.
Утрошено време: до сада протекло време за овај трансфер.
Преостало време: Процењено време преостало да се трансфер заврши
Тренутна брзина: Тренутна брзина преноса за овај пренос.

Пошто смо преусмерили излаз са цурл на датотеку, сада имамо датотеку која се зове „ббц.хтмл“.

Двоструким кликом на ту датотеку отвориће се ваш подразумевани претраживач тако да приказује преузету веб страницу.

Имајте на уму да је адреса у адресној траци претраживача локална датотека на овом рачунару, а не удаљена веб локација.

Не морамо да преусмеравамо излаз да бисмо креирали датотеку. Можемо да креирамо датотеку користећи опцију -о (излаз) и кажемо цурл-у да креира датотеку. Овде користимо опцију -о и дајемо име датотеке коју желимо да креирамо „ббц.хтмл“.

curl -o bbc.html https://www.bbc.com

Коришћење траке напретка за праћење преузимања

Да бисте заменили информације о преузимању засноване на тексту једноставном траком напретка, користите опцију -# (трака напретка).

curl -x -o bbc.html https://www.bbc.com

Поновно покретање прекинутог преузимања

Лако је поново покренути преузимање које је прекинуто или прекинуто. Почнимо са преузимањем велике датотеке. Користићемо најновију верзију дугорочне подршке за Убунту 18.04. Користимо опцију –оутпут да наведемо име датотеке у коју желимо да је сачувамо: „убунту180403.исо.“

curl --output ubuntu18043.iso http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso

Преузимање почиње и иде ка завршетку.

  Како инсталирати Зеттлр Маркдовн едитор на Линук-у

Ако насилно прекинемо преузимање помоћу Цтрл+Ц, враћамо се на командну линију и преузимање се прекида.

Да бисте поново покренули преузимање, користите опцију -Ц (настави на). Ово узрокује да цурл поново покрене преузимање на одређеној тачки или померању унутар циљне датотеке. Ако користите цртицу – као помак, цурл ће погледати већ преузети део датотеке и одредити тачан помак који ће користити за себе.

curl -C - --output ubuntu18043.iso http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso

Преузимање је поново покренуто. цурл извештава о померању на којем се поново покреће.

Преузимање ХТТП заглавља

Са опцијом -И (глава), можете да преузмете само ХТТП заглавља. Ово је исто као и слање ХТТП ХЕАД команда на веб сервер.

curl -I www.twitter.com

Ова команда преузима само информације; не преузима никакве веб странице или датотеке.

Преузимање више УРЛ-ова

Користећи каргс можемо преузети више УРЛ адресе одмах. Можда желимо да преузмемо серију веб страница које чине један чланак или водич.

Копирајте ове УРЛ адресе у уређивач и сачувајте их у датотеци под називом „урлс-то-довнлоад.ткт“. Можемо користити каргс да третирати садржај сваког реда текстуалног фајла као параметра који ће се, заузврат, увијати.

https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#0
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#1
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#2
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#3
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#4
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#5

Ово је команда коју треба да користимо да би каргс проследили ове УРЛ адресе да се увијају један по један:

xargs -n 1 curl -O 

Note that this command uses the -O (remote file) output command, which uses an uppercase “O.” This option causes curl to save the retrieved  file with the same name that the file has on the remote server.

The -n 1 option tells xargs to treat each line of the text file as a single parameter.

When you run the command, you’ll see multiple downloads start and finish, one after the other.

Checking in the file browser shows the multiple files have been downloaded. Each one bears the name it had on the remote server.

Downloading Files From an FTP Server

Using curl with a File Transfer Protocol (FTP) server is easy, even if you have to authenticate with a username and password. To pass a username and password with curl use the -u (user) option, and type the username, a colon “:”, and the password. Don’t put a space before or after the colon.

This is a free-for-testing FTP server hosted by Rebex. The test FTP site has a pre-set username of “demo”, and the password is “password.” Don’t use this type of weak username and password on a production or “real” FTP server.

curl -u demo:password ftp://test.rebex.net

цурл открива да га усмеравамо на ФТП сервер и враћа листу датотека које су присутне на серверу.

Једина датотека на овом серверу је датотека „реадме.ткт“, дужине 403 бајта. Хајде да га преузмемо. Користите исту команду као малопре, са доданим именом датотеке:

curl -u demo:password ftp://test.rebex.net/readme.txt

Датотека се преузима и цурл приказује њен садржај у прозору терминала.

У скоро свим случајевима, биће згодније да се преузета датотека сачува на диск уместо нас, уместо да се прикаже у прозору терминала. Још једном можемо користити излазну команду -О (удаљена датотека) да бисмо датотеку сачували на диску, са истим именом датотеке као на удаљеном серверу.

curl -O -u demo:password ftp://test.rebex.net/readme.txt

Датотека се преузима и чува на диску. Можемо користити лс да проверимо детаље датотеке. Има исто име као датотека на ФТП серверу и исте је дужине, 403 бајта.

ls -hl readme.txt

Слање параметара на удаљене сервере

Неки удаљени сервери ће прихватити параметре у захтевима који им се шаљу. Параметри се могу користити за форматирање враћених података, на пример, или се могу користити за одабир тачних података које корисник жели да преузме. Често је могуће комуницирати са вебом интерфејси за програмирање апликација (АПИ) користећи цурл.

Као једноставан пример, ипифи веб-сајт има АПИ може бити упитан да би се утврдила ваша спољна ИП адреса.

curl https://api.ipify.org

Додавањем параметра формата у команду, са вредношћу „јсон“ можемо поново да захтевамо нашу спољну ИП адресу, али овог пута ће враћени подаци бити кодирани у ЈСОН формат.

curl https://api.ipify.org?format=json

Ево још једног примера који користи Гоогле АПИ. Враћа ЈСОН објекат који описује књигу. Параметар који морате да наведете је Међународни стандардни број књиге (ИСБН) број књиге. Можете их пронаћи на задњој корици већине књига, обично испод бар кода. Параметар који ћемо овде користити је „0131103628.“

curl https://www.googleapis.com/books/v1/volumes?q=isbn:0131103628

Враћени подаци су свеобухватни:

Понекад коврџа, Понекад вгет

Ако бих желео да преузмем садржај са веб локације и да структуру стабла веб локације рекурзивно претражим за тај садржај, користио бих вгет.

Ако бих желео да комуницирам са удаљеним сервером или АПИ-јем и евентуално преузмем неке датотеке или веб странице, користио бих цурл. Нарочито ако је протокол био један од многих које вгет не подржава.