curl:如何不覆盖现有文件?

时间:2014-05-04 12:56:12

标签: curl wget downloading

在线提供+ 350MB文件ETOPO1_Ice_g_geotiff.zip

在脚本中,当前使用以下curl命令进行下载:

curl  -o ../data/ETOPO1/ETOPO1.zip \
  'http://www.ngdc.noaa.gov/mgg/global/relief/ETOPO1/data/ice_surface/grid_registered/georeferenced_tiff/ETOPO1_Ice_g_geotiff.zip'

鉴于目标大小和下载时间(~20分钟),我想第一次下载它。然后,当我重新启动整个脚本时,该命令应该注意到该文件已存在,并且 NOT 重新加载它。

此外,当输出-o已存在时,如何不重启下载/覆盖文件

注意:偏好curl,但其他实用程序欢迎(wget,...)

1 个答案:

答案 0 :(得分:3)

使用命令行选项-C <offset>

  

继续/恢复给定偏移量的先前文件传输。 (...)使用&#34; -C - &#34;告诉curl自动找出恢复转移的位置/方式。然后它使用给定的输出/输入文件来计算出来。

Documentation

在您的确切情况下:

curl \
  -o ../data/ETOPO1/ETOPO1.zip \
  -C - \
  'http://www.ngdc.noaa.gov/mgg/global/relief/ETOPO1/data/ice_surface/grid_registered/georeferenced_tiff/ETOPO1_Ice_g_geotiff.zip'