我目前正在用curl做:
curl https://example.com/file -o file
如果我的目录中已经有一个名为的文件file
,则此命令将覆盖它。相反,我希望返回一条错误消息,告知该文件已存在。
是否可以仅使用curl 来做到这一点?我没有看到执行此操作的标志,并且我没有在 bash 脚本中运行该命令,因此在运行该命令之前无法使用比较运算符。
答案1
可以使用以下测试来测试目录中名称是否存在-e
:
if [ -e "filename" ]; then
echo 'File already exists' >&2
exit 1
fi
curl -o "filename" "URL"
如果您不想此时终止脚本:
if [ -e "filename" ]; then
echo 'File already exists' >&2
else
curl -o "filename" "URL"
fi
如果该名称存在,则测试将为 true,无论该名称是常规文件、目录、命名管道还是其他类型的文件系统对象的名称。
在您的系统上查看man test
。
答案2
我强烈建议检查这个答案关于-C -
卷曲选项。本质上,恢复下载。如果文件已经完成,则无需执行任何操作。这将调用服务器进行恢复检查。