【问题标题】:curl: how to not overwrite existing file? [closed]curl:如何不覆盖现有文件? [关闭]
【发布时间】:2014-05-04 12:56:11
【问题描述】:

给定一个 +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 分钟),我只想在第一次下载。然后,当我重新启动整个脚本时,该命令应该会注意到该文件已经存在,并且重新下载它。

另外,当输出-o 已经存在时,如何不重新开始下载/覆盖文件

注意:首选curl,但欢迎使用其他实用程序(wget,...)

【问题讨论】:

    标签: curl wget download


    【解决方案1】:

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

    在给定的偏移量处继续/恢复先前的文件传输。 (...) 使用“-C -”告诉 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'
    

    【讨论】:

    • 你能完全重写命令吗?我收到一条错误消息。 $curl -o -C ../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' 控制台错误:curl: (6) Couldn't resolve host '..' PK�>�f����9�vETOPO1_Ice_g_geotiff.tifUT ��M��Mux ���;V����}'I�$I�$I�$I� $I�$I�$I�$I�$�$���$�$����L�Lfff�I�I*�$���\{���ys^|���� s��r�6��h�smu����\m��m�φ���K�?=�$�o7�0�?s����wJ?����m �L��.......`
    • 好的,编辑添加一个完整的例子。
    • 工作和验证! +...谢谢!
    • 对我不起作用,每次重复都会附加一些字节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2015-01-20
    • 2015-01-03
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多