如何检查一个URL是否存在与shell可能curl?
我正在寻找一个简单的shell(+curl)检查,如果URL存在(返回200),则评估为true或false。
使用--fail
会使失败的请求退出状态非零。 使用--head
将避免下载文件内容,因为我们不需要这个检查。 使用--silent
将避免由检查本身发出状态或错误。
if curl --output /dev/null --silent --head --fail "$url"; then echo "URL exists: $url" else echo "URL does not exist: $url" fi
如果您的服务器拒绝HEAD请求,另一种方法是只请求文件的第一个字节:
if curl --output /dev/null --silent --fail -r 0-0 "$url"; then
我觉得wget是比CURL更好的工具。 有更less的选项要记住,你可以在bash中真正检查它的真值,看看它是否成功。
if wget --spider http://google.com 2>/dev/null; then echo "File exists" else echo "File does not exist" fi
--spider
选项使wget只是检查文件,而不是下载文件, 2> /dev/null
沉默wget的stderr输出。