如果文件在本地已存在,则不要使用 curl 下载文件

Arm*_*let 3 curl

我目前正在使用 curl:

curl https://example.com/file -o file
Run Code Online (Sandbox Code Playgroud)

如果我的目录中已经有一个文件file,它将被此命令覆盖。相反,我想返回一条错误消息,告知该文件已存在。

是否可以仅使用 curl 来做到这一点?我没有看到执行此操作的标志,并且我没有在 bash 脚本中运行该命令,因此在运行该命令之前我无法使用比较运算符。

Kus*_*nda 5

可以通过以下-e测试来测试目录中是否存在名称:

if [ -e "filename" ]; then
    echo 'File already exists' >&2
    exit 1
fi

curl -o "filename" "URL"
Run Code Online (Sandbox Code Playgroud)

如果您此时不想终止脚本:

if [ -e "filename" ]; then
    echo 'File already exists' >&2
else
    curl -o "filename" "URL"
fi
Run Code Online (Sandbox Code Playgroud)

如果名称存在,则测试为真,无论名称是常规文件、目录、命名管道还是其他类型的文件系统对象。

请参阅man test您的系统上。