wget - 如果下载失败,不覆盖文件

wget - 如果下载失败,不覆盖文件

想象一下您将文件下载到~/img.txt

wget https://picsum.photos/200 -O ~/img.jpg

图像文件被存储。现在假设您重试,但 URL 错误

wget https://picsum.photooooooos/200 -O ~/img.jpg

然后该文件被删除/清空。

如果 URL 返回 404 或下载出现任何错误,如何避免文件被覆盖?

答案1

你总是可以使用临时文件 - 像这样:

outFile=img.jpg

# create temporary file in /tmp and store its name in tmpFile
tmpFile=$(mktemp)

if wget https://picsum.photos/200 -O "$tmpFile"; then
   mv -f "$tmpFile" "$outFile" || echo could not replace "$outfile" >&2
else
   echo wget failed with $? >&2
fi
rm -f "$tmpFile"

相关内容