我正在创建一个简单的 Bash 脚本来通过 HTTP 提取远程文件的文件修改时间/日期。
示例文件: http://example.com/bar/example.pdf
这可以在不下载实际文件的情况下完成吗?如果没有,最好的选择是什么?
Hi-*_*gel 19
服务器响应通常有Last-Modified字段,您无需下载文件即可查看。没有必要使用-X HEAD,有一个特殊的选项-I为(在-s禁止显示进度输出):
curl -sI http://example.com/bar/example.pdf | grep -i Last-Modified
Run Code Online (Sandbox Code Playgroud)
同样在我的情况下,没有安装 curl (我正在为嵌入式设备编写脚本),只是wget. wget的方式是:
wget --server-response --spider http://example.com/bar/example.pdf 2>&1 | grep -i Last-Modified
Run Code Online (Sandbox Code Playgroud)
该--server-response打印头和--spider选项强制不下载网页,而是检查自己的存在。
Kar*_* S. 16
说实话,不是直接的。
您必须从远程站点获取数据以获取有关文件的信息。通常这是通过HEAD请求完成的,但是一些(大多数?)服务器没有正确实现它并传递整个文件,就像执行GET请求一样。假设您已经curl安装:
curl -s -v -X HEAD http://foo.com/bar/baz.pdf 2>&1 | grep '^< Last-Modified:'
Run Code Online (Sandbox Code Playgroud)
可能会给你你想要的,但正如所说,这在很大程度上取决于服务器。