URL_C="any url"
length_C=$(curl -sI $URL_C | grep Content-Length | cut -d ' ' -f 2)
answer_C=$(awk -v len=$length_C 'BEGIN{printf "%.0f\n", len/1024}')
变量 $answer_C
会捕获文件大小吗?
Content-Length
是正确的方法吗?
最佳答案
您可以检索 header ,然后尝试awk
@user000001 建议的Content-Length
值,如果找不到,下载文件以计算字符数:
url="your_url"
size=$(curl -sI "$url" | awk '/Content-Length/{gsub("\\r", ""); print $2}')
if [ -z "$size" ]; then
size=$(curl -s "$url" | wc -c)
fi
printf "%s : %d bytes\n" "$url" "$size"
注意:awk 命令中的 gsub("\\r", "")
用于从 curl 输出中删除回车符。
关于linux - 如何从 URL 捕获文件大小并在 Shell 脚本中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36232441/