Answers:
wget
当找不到URL时,返回非零退出状态,因此可以在失败时附加remove命令:
wget "url" -O file || rm -f file
或创建一个临时文件,仅在成功时将其移动到您想要的位置:
wget "url" -O /tmp/wget && mv /tmp/wget file
第二个优点是不会在失败时删除现有文件,但是man tempfile
如果并行运行多个实例,请确保使用唯一的临时名称(请参阅参考资料)。
正如注释中所写,wget -O
它更像是shell重定向,无论错误如何,该重定向始终写入文件中。
您可以curl -f
改用:
curl -f http://nonexistent/file.jpg -o localfile.jpg
如果获取文件时出错,它将不会触摸本地文件。
正确的语法是
wget "url" -O file
注意大写字母O。-o选项告诉wget写一个日志文件,这就是为什么即使失败也总是写它的原因。