在 Linux 中使用 Wget 恢复部分下载的文件

由于 Internet 连接速度较慢,您如何处理部分下载的文件? 这个简短的教程解释了如何在 Linux 中使用 wget 命令恢复部分下载的文件。

前几天我在测试 自由管,我的 Arch Linux Linux 桌面中的一个开源 YouTube 桌面播放器。 我尝试使用从 GitHub 下载最新版本的 FreeTube wget 命令。 由于互联网速度不佳,下载过程每隔几分钟就会终止。 这是我用来下载该文件的 wget 命令。

$ wget https://github.com/FreeTubeApp/FreeTube/releases/download/v0.1.3-beta/FreeTube-linux-x64.tar.xz

样本输出:

--2018-03-09 15:41:44-- https://github.com/FreeTubeApp/FreeTube/releases/download/v0.1.3-beta/FreeTube-linux-x64.tar.xz Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt' Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112, 64:ff9b::c01e:fd70, ... Connecting to github.com (github.com)|192.30.253.113|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/123220152/39a2c92c-2277-11e8-8ca4-895487b6ddb0 [following] --2018-03-09 15:41:47-- https://github-production-release-asset-2e65be.s3.amazonaws.com/123220152/39a2c92c-2277-11e8-8ca4-895487b6ddb0 Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.225.200, 64:ff9b::34d8:e1c8 Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.225.200|:443... connected. HTTP request sent, awaiting response... 206 Partial Content Length: 39318740 (37M), 24626833 (23M) remaining [application/octet-stream] Saving to: ‘FreeTube-linux-x64.tar.xz’  FreeTube-linux-x64. 48%[+++++++=> ] 18.04M 4.63KB/s in 3m 6s  2018-03-09 15:49:59 (22.2 KB/s) - Read error at byte 18921544/39318740 (Error in the pull function.). Retrying.  --2018-03-09 15:50:00-- (try: 2) https://github-production-release-asset-2e65be.s3.amazonaws.com/123220152/39a2c92c-2277-11e8-8ca4-895487b6ddb0 Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.225.200|:443... connected. HTTP request sent, awaiting response... 403 Forbidden 2018-03-09 15:50:04 ERROR 403: Forbidden.

我检查了下载文件的大小。

$ ls -lh FreeTube-linux-x64.tar.xz  -rw-r--r-- 1 sk users 19M Mar 9 15:44 FreeTube-linux-x64.tar.xz

嗯,FreeTube 的实际大小大约是 38MB,但到目前为止我只有19M。

我重新运行 Wget 命令,希望它能恢复部分下载的文件,但它没有。 Wget 从头开始​​下载文件,几分钟后我得到了同样的错误。 无论我尝试下载该文件多少次,下载任务都会在几分钟后中断。

使用 wget 恢复部分下载的文件

经过几次谷歌搜索并通过 wget 手册页,我发现有一个选项可以使用 wget 命令恢复部分下载的文件。

要恢复部分下载的文件,请转到部分下载的文件所在的位置,然后使用 -c 或者 --continue 带有 wget 命令的选项,如下所示。

$ wget -c https://github.com/FreeTubeApp/FreeTube/releases/download/v0.1.3-beta/FreeTube-linux-x64.tar.xz

或者,

$ wget --continue https://github.com/FreeTubeApp/FreeTube/releases/download/v0.1.3-beta/FreeTube-linux-x64.tar.xz

现在,Wget 开始从上次尝试中离开的位置下载文件。 这 -c 或者 --continue 选项将继续获取部分下载的文件。 当您想要完成由以前的 Wget 实例或其他程序启动的下载时,这将非常有用。

请注意,如果当前目录中存在同名文件,Wget 将假定它是远程文件的第一部分,并要求服务器从等于本地长度的偏移量继续检索文件。 因此,只需确保您已删除所有其他部分下载的文件并保留要下载的原始文件。

有关更多详细信息,请参阅 wget 手册页。

$ man wget

或者,

$ wget --help

相关阅读:

  • 如何使用 Rsync 通过 SSH 恢复部分传输的文件

BASHCLI下载文件LinuxLinux基础Linux命令Linux提示使用Wgetwget恢复部分下载的文件