Linux Curl命令返回文件,不管它是否存在

Linux Curl命令返回文件,不管它是否存在,linux,bash,curl,xlsx,Linux,Bash,Curl,Xlsx,我正在运行一个curl命令,该命令使用上一步生成的身份验证字符串传递cookies.txt,并尝试下载每天生成的文件。当文件存在时,这非常有效,但我遇到的问题是当文件尚未发布时。我从下午5点开始收听,每5分钟重新运行一次脚本,并尝试获取文件。目前,我检查文件大小是否高于某个值,但效果不太好 有没有办法将curl设置为仅在试图获取的文件存在时创建文件?我真的想避免整个检查文件大小的做法,因为对于不同大小的多个文件来说,这是非常不可靠的 Curl命令: curl -b cookies.txt -J

我正在运行一个curl命令,该命令使用上一步生成的身份验证字符串传递
cookies.txt
,并尝试下载每天生成的文件。当文件存在时,这非常有效,但我遇到的问题是当文件尚未发布时。我从下午5点开始收听,每5分钟重新运行一次脚本,并尝试获取文件。目前,我检查文件大小是否高于某个值,但效果不太好

有没有办法将curl设置为仅在试图获取的文件存在时创建文件?我真的想避免整个检查文件大小的做法,因为对于不同大小的多个文件来说,这是非常不可靠的

Curl命令:

curl -b cookies.txt -J -L -v -O https://file_http_example.thespot.com/cleared_product_$(date +"%Y_%m_%d").xlsx
我尝试通过执行以下操作来比较文件大小:

fileSize=500
targetFileSize=$(wc -c file_name_$(date + "%Y_%m_%d").xlsx | awk '{print $1}')
if [ "$targetFileSize" -gt "$fileSize" ]
then keep the file otherwise delete it.
更新
我只是用下面的更改运行了脚本,我仍然保存了一个文件。这是保存在文件中的内容:

假设服务器在文件不可用时响应HTTP错误,您可以使用
curl
-f
标志:


这将避免在服务器响应HTTP 404或其他错误代码时创建文件。

@Aaron看起来像html/web数据。-F做什么?@Aaron我想你是说
-F
-F
用于发送表单数据。它看起来很有效。许多服务器会发送一个错误页和404错误,如果没有该选项,您将下载错误页。@Aaron将其作为答案发布。@Barmar这也是一个选项,完成。我会删除我的评论。感谢您的测试:)今晚在执行过程中进行测试。如果它有效,我们将接受它作为答案。谢谢大家!@AaronI只是手动运行它,不幸的是它没有工作。请看一下上面编辑的命令。你能在不使用-f和-v的情况下重新运行该命令吗?我想知道服务器响应哪个HTTP代码,但考虑到文件的内容,它看起来像是HTTP 200,这解释了为什么
-f
不起作用。我看看能不能找到别的东西。经过一点搜索,我认为你没有比手动检查文件大小更好的选择了,问题是从
curl
的角度来看,一切都很顺利
-f, --fail          Fail silently (no output at all) on HTTP errors