使用Linux命令行工具恢复下载失败


37

如何使用Linux命令行工具恢复部分下载的文件?

由于电源中断,我部分下载了一个大文件,即900 MB中的400 MB,但是当我再次开始下载时,它会从头开始恢复。我如何从400 MB本身开始?


5
首先,您使用什么命令行下载文件?
Anthon 2014年

3
请不要在评论中回答,请更新您不完整的问题
Anthon 2014年

1
如果使用curl,则应在手册页中搜索该-C选项。
HalosGhost

Answers:


53

由于您未指定,因此我假设您正在使用wget文件下载。如果是这种情况,请尝试将其与-c选项一起使用(例如wget -c <URL>)。

请注意,如果使用的协议是ftp(URL看起来像ftp://...),则远程服务器可能会使用旧的/古老的ftp守护程序,该守护程序不支持继续下载(无论如何,较新的ftp守护程序确实支持它超过十年) ,所以这只是一个很小的机会)。但是,如果是这种情况,您可能不走运。另一方面,如果使用的协议是http,则应该没有问题。(更新:根据其他专家(包括下面评论中的Gilles的说法),使用http时的恢复也受服务器支持,因此这对ftp和http均适用。

祝好运。


5
HTTP下载只能在服务器支持的情况下恢复,并且比FTP服务器少。
吉尔(Gilles)'所以

谢谢吉尔,我在使用http时只具有恢复的良好经验,但是您可能是对的,我很幸运。将更新我的答案。
Marcelo 2014年

wget -c http:...已经尝试了3或4台服务器。
鲍勃·斯坦因

愿上帝保佑你们!
学习者

3
@Gilles:实际上,现在这是常见的选项,服务器中的任何静态内容均晚于〜2010年(换句话说,默认情况下,大多数服务器都允许Range请求静态文件)。对于动态生成的数据,这确实很少见。
Piskvor '17

0

我知道原始问题是什么意思,答案不是 wget -c ...

场景可以这样描述:

# Start mirroring a site
wget -m http://...
# 400MB later wget died or interrupted,
# don't know where it left off, don't care,
# just want to get the remaining 100MB without getting the first 400MB again
wget -nc -r -l inf --no-remove-listing http://...

选项“ -r -l inf --no-remove-listing”等效于-m,不带-N参数。添加-nc参数可避免在硬盘驱动器中保存前400MB。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.