如何在curl中自动恢复中断下载?

我正在用curl在Linux上工作。 我正在ftp服务器中下载一个文件的一部分(使用-r选项),但是我的连接不好,总是中断。 我想写一个脚本,当我再次连接时恢复下载

我已经使用这个命令,但它不工作:

 until curl -r 666-9999 -C - --retry 999 -o "path/to/file" "ftp:/path/to/remote/file"; do :; done 

    wget专门为此用例而构建。 从手册页:

     Wget has been designed for robustness over slow or unstable network connections; if a download fails due to a network problem, it will keep retrying until the whole file has been retrieved. If the server supports regetting, it will instruct the server to continue the download from where it left off. 

    几乎所有的Linux发行版都可以使用wget,它可能已经安装在您的系统上。 只需使用wget下载文件,它将重新建立网络连接,直到文件完全传输。

    您可以在一个while循环中检查退出代码并继续,直到退出代码指示下载成功:

     export ec=18; while [ $ec -eq 18 ]; do /usr/bin/curl -O -C - "http://www.example.com/a-big-archive.zip"; export ec=$?; done 

    该示例取自http://ilovesymposia.com/2013/04/11/automatically-resume-interrupted-downloads-in-osx-with-curl/

     curl -L -O your_url 

    这将下载文件。

    现在让我们说你的连接中断,

     curl -L -O -C - your_url 

    这将继续从下载的最后一个字节下载