我总是用来wget -c
下载一个文件,该文件可以通过在需要时从最后一个下载位置附加来进行下载。
下载一个文件30%
。然后在网络占用后,它开始在文件末尾附加一些垃圾,直到40%
。 (由于文件服务器的逻辑而添加了垃圾,以便在之后提供垃圾数据30mins
)。
现在,我有了一个新的 url 位置,其中包含一些新的令牌,可用于30mins
同一文件的下一个。如何继续下载同一文件但从30%
以后开始下载?
或者有什么应用程序可以做到这一点?
前任:
$ wget -c http://xyz.com/file.txt?token=1
30% [=============> ]
40% [=================> ] (10%junk added)
^C - cancelled
$ wget -c http://xyz.com/file.txt?token=2 --from='30%'
31% [+++++++++++++=> ]
注意:- --from='30%'
仅作为示例是否可以完成。没有任何类似的论点存在于wget
答案1
wget -c / --continue
始终继续使用给定的文件大小,但您可以更改:
用于truncate
将文件缩小回原始30%
大小(您必须以字节或千字节为单位指定大小)。或者您可以使用head -c SIZE file > file_30pc
,它不会触及原始文件(但您必须重命名它)。
正如 BlueManCZ 所建议的,您可能需要使用它-O output-file
来确保它是同一个文件。
笔记:使用--start-pos
而不是-c/--continue
指定最后一个好位置将不是工作,而是从该位置开始创建一个新文件,它不会附加现有文件(如果您指定,它甚至会覆盖-O
)。
答案2
如果您需要继续从另一个 URL 下载相同的文件(或重命名的文件),则必须在命令中指定文件的名称。
wget -c -O myfilename https://examle.net/file1.txt
[will be stoped in 30%]
wget -c -O myfilename https://another_url.net/file2.txt
[will start on 30% of previous file]
[file1.txt and file2.txt must be same]
但我不知道这是否能完全解决您的问题。
答案3
您可以尝试另一个名为 aria2 的很棒的 Linux 工具,您需要执行以下操作才能恢复下载
aria2c -c -m 0 -o "myfile.zip" "http://example.com/file.zip"
这里 -c 告诉继续之前的下载 -m 告诉无限次重试下载 -o 告诉输出文件
尝试一下 aria2 是 Linux 上最好的下载器之一