Используйте параметр -I
, чтобы получить только заголовки, и найдите заголовок «Content -Length». Добавьте опцию -L
, если необходимо следовать перенаправлениям. Например:
$ curl -L -I https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
HTTP/1.1 302 Found
Date: Mon, 18 Jun 2018 09:51:32 GMT
Server: Apache/2.4.29 (Unix)
Location: https://gensho.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
Cache-Control: max-age=300
Expires: Mon, 18 Jun 2018 09:56:32 GMT
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK
Date: Mon, 18 Jun 2018 09:51:32 GMT
Server: Apache/2.4.29 (Unix)
Last-Modified: Sat, 10 Mar 2018 11:56:52 GMT
Accept-Ranges: bytes
Content-Length: 305135616
Age: 228
Content-Type: application/x-iso9660-image
Это показывает, что размер файла составляет 305 135 616 байт.
Вы можете отфильтровать это, например, с помощью Gawk:
$ curl -s -L -I https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso | gawk -v IGNORECASE=1 '/^Content-Length/ { print $2 }'
305135616
(Параметр -s
сообщает curl
не печатать информацию о ходе выполнения, что он делает по умолчанию, когда его вывод перенаправляется.)
Обратите внимание, что эта информация не всегда доступна, поэтому ваш сценарий должен быть готов к этому.
Я только что вынул одну из своих RAM, и она волшебным образом снова заработала. Это, по-видимому, было причиной зависания и «молчаливого» сбоя cryptsetup.