Linux wget下载文件

GNU Wget是用于从Web下载文件的命令行实用程序。使用Wget,您可以使用HTTP,HTTPS和FTP协议下载文件。

5 min read
By myfreax
Linux wget下载文件

GNU Wget是一个命令行程序,用于从Web下载文件。Wget可以让您可以使用HTTP,HTTPS和FTP协议下载文件。

wget提供了许多选项,允许您下载多个文件,恢复下载,限制速度,递归下载,在后台下载,镜像网站等等。

wget命令现已预先安装在大多数Linux发行版上。要检查系统上是否安装了wget。请打开命令行终端,键入wget,然后按Enter键。

如果安装了wget,终端将会输出wget: missing URL,否则将提示你wget command not foundwget命令未找到。

如果未安装wget,您可以使用发行版的软件包管理器轻松安装它。

如果你使用的基于Debian的Linux发行版。例如Linux mint,Ubuntu。你可使用命令sudo apt install wget安装wget。

如果你使用的基于Redhat的Linux发行版。例如CentOS,Fedora。你可使用命令sudo yum install wget安装wget。

在介绍如何使用wget命令之前,让我们先回顾一下基本语法。wget命令语法形式是wget [options] [url]。其中options是wget的选项。url远程服务器URL,这是必须的参数。

下载文件

在没有任何选项的情况下使用它时,默认情况下,wget会将url中指定的资源下载到当前目录。

在下载过程中,wget会显示进度条以及文件名,文件大小,下载速度和完成下载的预计时间。如果不需要这些wget的输出,可使用-q选项关闭,该选项经常用于shell脚本。

下载完成后,您可以在当前工作目录中找到下载的文件。如果文件已存在,wget将在文件名末尾追加数字,不会覆盖已存在的文件。

要以不同的名称保存下载的文件,可使用-O选项后跟指定的名称。你还可以将文件保存到指定目录使用-P选项。当您不希望wget消耗所有可用带宽时,此选项很有用。

wget还允许使用--limit-rate选项限制下载速度。该值可以用字节表示,带k后缀的千字节和兆字节m

您可以使用-c选项恢复下载。如果您在下载大文件时丢失连接二中断,则可以恢复下载。如果远程服务器不支持断点续传,wget将从头开始下载并覆盖现有文件。

wget的-b选项允许你在后台下载文学。这在下载大文件时很有用。在后台下载时,wget的下载状态将重定向到当前目录中的wget-log文件。

你可以使用tail -f wget-log命令要观察wget的下载状态。

在下载FTP服务器的文件时。要从受密码保护的FTP服务器下载文件,您需要指定用户名和密码。使用--ftp-user--ftp-password选项。

例如下载Linux内核tar存档从https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xzURL。

wget url #最简单用法
wget -O linux.tar.xz url  #指定保存的名称
wget -P /mnt/iso url #指定保存的目录
wget --limit-rate=1m url # 限制下载速度
wget -c url #恢复下载
wget -b url #在后台下载
wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz #下载ftp文件

下载多个文件

如果要一次下载多个文件,请使用-i选项,后跟要下载的URL列表。每个URL都需要在一个单独的行上。如果未使用-i指定文件名,则将从标准输入中读取URL。

在下面的示例中,我们使用linux-distros.txt文件中指定的URL下载Arch Linux,Debian和Fedora的iso文件。

wget -i linux-distros.txt
http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso
linux-distros.txt

wget下载解压

这非常节省时间的高级技巧,它允许你一边下载一边解压。除了解压之外还可以做你任何想做的事,只要命令允许从标准输入读取即可。

例如命令wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www

理解此命令的用法很简单。wget使用-q选项关闭下载状态的输出。下载并将最新的WordPress版本。

使用-O -标识指示wget将下载的文件内容写入到标准输出stdout。然后使用管道|传递到tar,tar将存档解压缩到/var/www目录。

更改User-Agent

在下载文件时,有些远程服务器会阻止wget默认的User-Agent。在这种情况下,你需要模拟不同的浏览器User-Agent,wget的-U选项,允许改变wget的User-Agent。

例如wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/命令将模拟Firefox 60请求页面 wget forbidden.com

到目前为止,您应该对最常见的wget选项有一个很好的理解,并且您应该能够使用wget下载多个文件,恢复下载,镜像网站并根据您的需要组合Wget选项。

如果您想了解有关Wget的更多信息,请访问GNU wget手册页面。