linux - 如何从 URL 捕获文件大小并在 Shell 脚本中使用它

标签 linux bash shell scripting centos

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/

相关文章:

linux - centos6.5中的HostKey算法

bash - "for"循环条件语句内评估表达式语句 $(()) 的奇怪行为

linux - 连接文件并删除源文件

linux - 计算所有文件和文件夹,包括隐藏在 bash 中的文件和文件夹

java - 一个正则表达式,用于捕获两个略有不同的模式

ARM : error no such file or directory/command not found 的交叉编译

c - gcc -g0 并且没有 -g 选项

bash - $@ 是什么意思?

linux - 获取选择: How to accept arguments that aren't tied to an option in my script?

从不处理信号的 bash 脚本中调用的 Python 脚本