Linux wget 命令

2017-09-27|Categories: External cmd, Linux|

根据服务器的规定给下载的文件命名

某些服务器提供的下载链接不是直接指向最终下载的文件,而是带有跳转链接,此时最好是根据跳转后服务器的规定自动给下载的文件命名,否则下载的文件还需要手动重命名,wget的--content-disposition--trust-server-names两个选项都可以完成这个任务,方法如下:

# `wget --content-disposition`
# 成功,保存为`php-7.1.9.tar.gz`
wget --content-disposition http://php.net/get/php-7.1.9.tar.gz/from/this/mirror
# 成功,保存为`molokai.vim`
wget --content-disposition http://www.vim.org/scripts/download_script.php?src_id=9750

# `wget --trust-server-names`
# 成功,保存为`php-7.1.9.tar.gz`
wget --trust-server-names http://php.net/get/php-7.1.9.tar.gz/from/this/mirror
# 失败,保存为`download_script.php?src_id=9750`
wget --trust-server-names http://www.vim.org/scripts/download_script.php?src_id=9750

经过测试,--content-disposition相比--trust-server-names有更好的兼容性,成功率更高。

curl命令也有类似选项,更多信息详见《Linux curl 命令》

通过代理服务器下载

# 不同协议的URI使用不同的代理,https协议必须使用`https_proxy`
wget -e use_proxy=yes -e https_proxy=127.0.0.1:1087 https://s3-eu-west-1.amazonaws.com/ithoughtsx/iThoughtsX.zip

wget不支持多线程下载

这里的「多线程下载」是指:对于一个大文件,将其分成很多「小块」下载,每一个小块占用一个线程,多个线程并行下载,下载完成之后自动合并,就像IDM (Internet Downloade Manager)那样,但wget不支持多线程下载

IDM是Windows平台的GUI程序,Linux/macOS命令行可以使用aria2

aria2c -x 16 -s 16 [url]
#          |    |
#          |    |
#          |    |
#          ---------> the number of connections here
#
# the max allowed value of `-x` is 16

指定下载文件保存的目录 2018-01-19

wget默认会把下载的文件保存到工作目录$PWD,如果需要保存到其它目录,需要使用-P选项:

wget -P /src --content-disposition \
    https://downloads.mariadb.org/interstitial/mariadb-5.5.58/bintar-linux-x86_64/mariadb-5.5.58-linux-x86_64.tar.gz/from/http%3A//mirrors.accretive-networks.net/mariadb/

断点续传 2018-01-20

下载大文件时,如果网络状况不好,或者因为其它原因中断了下载,已经下载的数据会保留在磁盘上,稍后我们可能不希望从头下载,而是从上次中断的地方继续下载,这就是「断点续传」,wget的-c选项支持断点续传:

wget -c --content-disposition \
    https://downloads.mariadb.org/interstitial/mariadb-5.5.58/bintar-linux-x86_64/mariadb-5.5.58-linux-x86_64.tar.gz/from/http%3A//mirrors.accretive-networks.net/mariadb/

注意:

  • 执行断点续传必须在上次中断下载的目录。
  • 断点续传的文件名必须和上次中断下载的文件名相同。
  • 完成断点续传之后,强烈建议用sha256sumsha512sumgpg等工具校验文件的完整性。

Leave A Comment