Обратите внимание, что вся информация на этом портале переведена с других языков, поэтому некоторые фразы могут быть неточными. Надеемся на ваше понимание и желаем успешной работы с сайтом! С уважением, создатели сайта. Наша почта: [email protected]

Использование cURL для загрузки удаленных файлов из командной строки

Для целей этого пошагового руководства мы сосредоточимся прежде всего на загрузке файлов из двух обычно встречающихся протоколов HTTP и SFTP, хотя следует отметить, что cURL поддерживает еще много протоколов. Хотя завиток прост в использовании, рекомендуется знание некоторых команд командной строки.

Загрузите файлы точного соответствия с curl -O

Используя верхний регистр -O с curl загружает файл с удаленного сервера при сохранении точного имени файла, базовый синтаксис для этого заключается в следующем:

curl -O [url]

Это означает, что если указанный файл URL называется «sample.zip», он будет загружаться с именем файла «sample.zip», и если файл назван чем-то огромным и сложным, как «LongExampleFileNameForOSXDaily-v-1-3-51-revision- 515b12-readme.txt «на удаленном сервере, он сохранит это точное имя на локальном компьютере. Более длинные имена файлов часто лучше обрабатываются с помощью флага -o, а не -O, о чем мы поговорим в ближайшее время.

Обычно читатели могут вспомнить, что мы использовали команду curl -O при объяснении того, как извлечь фактический аудиоконтент из потокового файла m3u.

Начиная любую загрузку с помощью curl показывает процент переданных, время, затрачиваемое на скачивание и оставшееся время, и скорость передачи.

Загрузка файла с завитком

Снимок экрана дает лучшее представление, чем приведенный ниже пример, но выглядит примерно так:

% Всего% Получено% Xferd Средняя скорость Время Время Время Текущее
Загрузка полной нагрузки
100 10505 100 10505 0 0 79741 0 -: -: — -: -: — -: -: — 142k

При скорости передачи данных вы можете перенаправить вывод curl на / dev / null и использовать его для проверки скорости подключения к Интернету, но команда wget легче читать и следить за передающей панелью, поэтому wget лучше подходит для этой задачи.

Сохранение удаленного файла с другим именем с помощью curl -o

Использование строчного флага -o позволит вам указать другое имя файла для загруженного файла, чем то, как оно указано на удаленном сервере. Это может быть полезно для сокращения длинных имен файлов или просто маркировки чего-либо, чтобы его легче было найти самостоятельно. Общий синтаксис:

curl -o [shortname] [url]

Например, если вы хотите сохранить файл IOS IPSW, который вы нашли на серверах Apple, не имея длинного полного имени, вы можете использовать следующее:

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

Это загрузит файл «iPhone5.3_7.0.4_11B554a_Restore.ipsw», но назвал его короче, чем более значимый «iPhone5C-704.ipsw».

Если вы предпочитаете не сохранять файл в настоящий рабочий каталог, укажите путь как часть имени файла, например:

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

Загрузка нескольких файлов одновременно с завихрением

cURL может легко загружать несколько файлов одновременно, все, что вам нужно сделать, это указать более одного URL-адреса:

curl -O [URL 1] [URL 2] [URL 3]

Для файлов с разными именами или размещенных на разных серверах или в разных каталогах используйте полный URL-адрес, например:

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

С другой стороны, если имена файлов, которые нужно загрузить, используют инкрементное именование, вы можете использовать скобки для указания диапазона загрузки, например:

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

Это будет захватывать файлы fdl-1.1.txt, fd1-1.2.txt и fd1-1.3.txt в одно и то же время без необходимости указывать каждый уникальный URL. Конечно, это работает только в том случае, если файлы находятся в одном каталоге вместе и в том же домене.

Аутентификация с помощью завитка

Вы также можете передать аутентификацию с помощью cURL с помощью флага -u:

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

Имейте в виду, что история bash будет хранить пароль в обычном тексте при использовании -u с указанным именем пользователя и паролем, поэтому это не рекомендуется для большинства ситуаций. Вы можете обойти это, поставив пространство перед «завиванием». Если вы не используете пробел для префикса команды, вы, вероятно, захотите опорочить историю команд, чтобы быть в безопасности.

Поддерживаемые протоколы и использование за пределами HTTP и FTP

Как упоминалось ранее, использование cURL выходит далеко за пределы HTTP и FTP, поскольку в записи страницы ручного рулона упоминаются дополнительные протоколы в описании:

curl — это инструмент для передачи данных с сервера или на сервер, используя один из
поддерживаемые протоколы (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,
TELNET и TFTP).

Кроме того, вы обнаружите, что завиток также может использоваться для запросов PUT и POST, файлов cookie, прокси, туннелей, возобновления загрузки и даже захвата информации заголовка HTTP или изменения пользовательского агента (эффективного подмены) без необходимости использования выделенной сети браузер.

Как и большинство утилит командной строки, вы можете узнать гораздо больше о завитке, вызвав соответствующую man-страницу с помощью команды man curl.

Понравилась статья? Поделиться с друзьями: