Linux命令行如何下载文件wget详解

wget是Linux下最可靠的下载工具,支持断点续传、认证下载和递归抓取。使用-c可续传大文件,–user与–password用于登录认证,结合-r、-np、-l等参数可实现网站镜像或目录下载,同时可通过–no-check-certificate跳过证书验证(需谨慎)。

Linux命令行如何下载文件wget详解

在Linux命令行下,下载文件最核心、最可靠的工具,毫无疑问就是

wget

。它就像一个老兵,虽然界面朴素,但功能强大且久经沙场。无论你是想从一个简单的HTTP链接抓取文件,还是需要处理更复杂的认证、断点续传,甚至递归下载整个网站,

wget

都能胜任。它直接、高效,是每个Linux用户都应该掌握的技能,省去了图形界面操作的繁琐。

在Linux命令行中下载文件,

wget

的基本用法直接到令人发指:你只需要在终端输入

wget

,后面紧跟着你要下载文件的URL,回车,文件就开始下载了。比如,要下载一个名为

example.tar.gz

的文件,命令就是:

wget https://example.com/files/example.tar.gz

这看起来很简单,但实际操作中,我们总会遇到各种各样的情况。比如文件太大下载到一半断了,或者需要把文件保存到指定位置,甚至是从一个需要用户名密码的服务器下载。这时候,

wget

的各种参数就派上用场了。

如何用

wget

下载大文件并断点续传,避免重复下载?

下载大文件时,最怕的就是网络中断或者下载到一半电脑关机。如果每次都要从头开始,那简直是噩梦。

wget

-c

参数(或

--continue

)就是为此而生。它能让

wget

检查本地是否已经存在同名文件,如果存在且未下载完成,就会尝试从上次中断的地方继续下载。

假设你正在下载一个几GB的虚拟机镜像:

wget -c https://example.com/large-image.iso

如果下载过程中断,你只需要再次运行相同的命令,

wget

就会自动检查本地

large-image.iso

文件的大小,然后从上次停止的地方接着下载。这大大提高了下载的效率和容错性,尤其是在网络环境不稳定的情况下,简直是救命稻草。我个人就无数次因为这个功能而避免了重复下载几个小时的痛苦。

Linux命令行如何下载文件wget详解

下载受保护或需要认证的文件,

wget

应该怎么处理?

有时候,我们要下载的文件并不是公开的,可能需要用户名和密码才能访问。

wget

提供了

--user

(或

-U

)和

--password

(或

-P

)参数来处理HTTP或FTP认证。

例如,从一个需要认证的FTP服务器下载文件:

wget --user=your_username --password=your_password ftp://ftp.example.com/private/document.pdf
Linux命令行如何下载文件wget详解

笔魂AI

笔魂ai绘画-在线AI绘画、AI画图、AI设计工具软件

Linux命令行如何下载文件wget详解258

查看详情 Linux命令行如何下载文件wget详解

这里需要注意的是,直接在命令行中输入密码可能会被历史记录下来,存在一定的安全风险。如果是在脚本中,或者对安全性有更高要求,可以考虑使用其他更安全的方式传递凭据,或者确保只有受信任的用户能访问该历史记录。

另外,如果你遇到HTTPS证书验证失败的情况(比如自签名证书,或者证书过期),

wget

可能会拒绝下载。在这种情况下,你可以使用

--no-check-certificate

参数来跳过证书验证。

wget --no-check-certificate https://internal.company.com/report.zip

我知道这听起来有点粗暴,因为它绕过了安全检查,但在某些内部测试环境,或者你知道来源可靠但证书又过期的情况下,这确实能帮你解燃眉之急。但请务必谨慎使用,确保你完全信任下载源,否则可能会带来安全隐患。

Linux命令行如何下载文件wget详解

除了单个文件,

wget

还能下载整个网站或指定目录吗?

wget

不仅仅是下载单个文件的好手,它在递归下载方面也异常强大,可以用来镜像整个网站或者下载网站的某个特定目录。这对于备份网站、离线浏览或者分析网站结构都非常有用。

要递归下载一个网站,你可以使用

-r

--recursive

)参数。但仅仅这样还不够,你可能还需要结合其他参数来控制下载的深度、文件类型、是否跟随外部链接等。

一个常用的组合是:

wget -r -np -l 1 --accept=pdf,doc,xls https://example.com/documents/

这里:

  • -r

    :启用递归下载。

  • -np

    --no-parent

    ):确保

    wget

    不会向上级目录递归,只在当前目录及其子目录中操作。

  • -l 1

    --level=1

    ):设置递归下载的深度为1,意味着只下载当前目录下的文件和链接到的文件,不会再深入到子目录的子目录。如果你想下载整个网站,可以把这个值设置得更大,或者干脆不设(默认是无限深度,但要小心,可能会下载非常多的内容)。

  • --accept=pdf,doc,xls

    :指定只下载

    pdf

    doc

    xls

    类型的文件。你也可以用

    --reject

    来排除某些文件类型。

通过这些参数的组合,

wget

能够非常灵活地完成各种复杂的下载任务,从简单的文件抓取到整个网站的镜像,它的功能远超许多人的想象。但请记住,在使用递归下载时,务必注意目标网站的

robots.txt

文件和使用条款,避免给服务器造成不必要的负担。

linux word 电脑 虚拟机 工具 pdf linux命令 continue 递归 private internal http https linux

上一篇
下一篇