如果文件本地已存在,请勿使用curl下载文件

如果文件本地已存在,请勿使用curl下载文件

我目前正在用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 -卷曲选项。本质上,恢复下载。如果文件已经完成,则无需执行任何操作。这将调用服务器进行恢复检查。

相关内容