Eu sugiro usar curl
:
<download-list.txt xargs -n1 curl -sI |
awk '/[cC]ontent-[lL]ength/{total_size+=$2} END{ print total_size " bytes" }'
O curl
imprimirá as informações do cabeçalho ( qual arquivo? ) como como abaixo, que contém "Content-Length"
em bytes (se o servidor remoto puder fornecer isso); em seguida, com awk
, estamos somando a segunda coluna, que é o tamanho do arquivo para a linha, se combinado com Content-Length
e, na tela END, o tamanho total salvo na variável total_size
.
HTTP/1.1 200 OK Content-Length: 1921843200 Content-Type: application/x-iso9660-image ETag: "728d0000-56ac4c63786e2" Server: Apache/2.4.18 (Ubuntu) Last-Modified: Thu, 26 Apr 2018 18:44:15 GMT Connection: keep-alive Date: Wed, 23 May 2018 16:45:08 GMT
de man curl
-I, --head
(HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature the command HEAD which this uses to get nothing but the header of a document. When used on an FTP or FILE file, curl displays the file size and last modification time only.-s, --silent
Silent or quiet mode. Don't show progress meter or error messages. Makes Curl mute. It will still output the data you ask for, potentially even to the terminal/stdout unless you redirect it.