首页 > 运维 > linux运维 > 正文

Linux下载文件命令wget的使用说明

P粉602998670
发布: 2025-09-07 11:51:02
原创
795人浏览过
wget是一个强大的命令行下载工具,支持断点续传、递归下载和镜像网站。使用wget -c可续传中断的大文件;--mirror --convert-links --page-requisites --no-parent可完整下载网站用于离线浏览;与curl相比,wget专注下载,而curl更擅长多协议交互和API调试。

linux下载文件命令wget的使用说明

wget
登录后复制
在Linux世界里,就像是命令行下的一个瑞士军刀,专门用来从网络上下载文件。它简单、直接,而且功能强大到足以处理各种复杂的下载任务,从单个文件到整个网站,它都能搞定。对我来说,它不仅仅是一个命令,更是一个在无数次自动化脚本和服务器维护中,帮我省下大量时间和精力的老伙计。它的核心价值在于,即使网络中断,它也能智能地尝试续传,而且完全不需要图形界面,这在远程服务器管理时简直是福音。

解决方案

使用

wget
登录后复制
下载文件,最基础的命令格式是:

wget [选项] [URL]
登录后复制

例如,要下载一个名为

example.zip
登录后复制
的文件,你只需要知道它的网络地址:

wget https://example.com/files/example.zip
登录后复制

文件会默认下载到当前目录。如果你想指定下载到其他目录,可以用

-P
登录后复制
--directory-prefix
登录后复制
选项:

wget -P /home/user/downloads https://example.com/files/example.zip
登录后复制

如果下载的文件名太长或者你想给它换个名字,

-O
登录后复制
--output-document
登录后复制
就派上用场了:

wget -O my_custom_name.zip https://example.com/files/example.zip
登录后复制

有时候,下载需要认证,比如通过用户名和密码,这时候

-user
登录后复制
--password
登录后复制
就很有用了:

wget --user=your_username --password=your_password https://example.com/secure/file.tar.gz
登录后复制

当然,很多时候我们下载的文件可能来自一个不是很稳定的网络,或者文件本身就很大。

wget
登录后复制
在这种情况下表现得非常出色,特别是它处理中断下载的能力,简直是救星。

Linux wget命令如何下载整个网站或目录?

说实话,

wget
登录后复制
真正让我觉得它不可替代的,是它递归下载的能力。这不仅仅是下载一个文件,而是可以抓取整个网站或者一个目录下的所有内容。这功能在做离线浏览、备份网站或者分析网站结构时特别有用。

要实现这个,你需要用到

--recursive
登录后复制
-r
登录后复制
选项。但仅仅这样还不够,通常我们还需要一些其他的选项来精细控制下载行为:

  • --level=N
    登录后复制
    :指定递归的深度。默认是5,但如果你只想下载当前目录下的所有文件,可以设为1。
  • --no-parent
    登录后复制
    :这个选项非常重要,它会阻止
    wget
    登录后复制
    访问父目录,确保你不会意外地下载到网站根目录以外的东西。
  • --convert-links
    登录后复制
    :下载完成后,将HTML文件中的链接转换为本地链接,这样你就可以在本地离线浏览整个网站了。
  • --page-requisites
    登录后复制
    -P
    登录后复制
    :下载所有页面所需的附加文件,比如图片、CSS文件、JavaScript脚本等,确保页面在本地能完整显示。
  • --mirror
    登录后复制
    -m
    登录后复制
    :这是一个组合选项,等同于
    -r -N -l inf --no-host-directories
    登录后复制
    ,它会以镜像模式下载网站,保留时间戳,并无限递归。这是下载整个网站的最佳实践。

举个例子,如果你想完整地镜像一个网站供离线浏览:

wget --mirror --convert-links --page-requisites --no-parent https://example.com/
登录后复制

这个命令会下载

example.com
登录后复制
网站的所有内容,并调整链接,让你可以在本地浏览器中打开下载下来的HTML文件,就像在线浏览一样。不过,在使用这个功能时,务必注意目标网站的
robots.txt
登录后复制
文件,尊重网站的抓取策略,避免给对方服务器造成不必要的负担。

甲骨文AI协同平台
甲骨文AI协同平台

专门用于甲骨文研究的革命性平台

甲骨文AI协同平台 21
查看详情 甲骨文AI协同平台

wget下载大文件中断后如何续传?

这大概是

wget
登录后复制
最常用的功能之一了,尤其是在处理那些动辄几个GB的大文件时。网络环境不稳定、断电、或者只是你不小心关掉了终端,都可能导致下载中断。这时候,
wget
登录后复制
的续传功能简直是雪中送炭。

核心选项是

-c
登录后复制
--continue
登录后复制
。当一个下载任务中断后,你只需要用相同的
wget
登录后复制
命令,加上
-c
登录后复制
选项,
wget
登录后复制
就会检查本地已下载的部分,然后从上次中断的地方继续下载。

# 假设你正在下载一个大文件,但中断了
wget https://example.com/large_archive.tar.gz

# 几分钟后,你发现中断了,想继续下载
wget -c https://example.com/large_archive.tar.gz
登录后复制

它能做到这一点,是因为HTTP协议本身支持“范围请求”(Range Requests)。当

wget -c
登录后复制
执行时,它会告诉服务器,它已经有了文件的前N个字节,请求服务器从第N+1个字节开始发送数据。当然,前提是服务器也支持这个功能,不过现在绝大多数的HTTP服务器都支持。

我个人就经常遇到这种情况,尤其是在下载一些大型的虚拟机镜像或者数据集时。没有

-c
登录后复制
,可能每次中断都意味着从头再来,那简直是噩梦。所以,只要是下载大文件,我几乎都会习惯性地带上
-c
登录后复制
,以防万一。

wget与curl命令有哪些核心差异和适用场景?

在Linux命令行工具中,

wget
登录后复制
curl
登录后复制
都是下载文件或与Web服务器交互的利器,但它们的设计理念和主要用途却有些不同。在我看来,它们就像是工具箱里两把不同的锤子,各有各的用武之地。

wget
登录后复制
Web Getter)顾名思义,它的核心设计目标就是“获取”Web上的资源。它更专注于非交互式、递归式的下载。如果你需要下载一个文件、一个目录甚至整个网站,并且希望这个过程是自动化的、能在后台运行的,那么
wget
登录后复制
通常是首选。它的递归下载、续传、后台运行(通过
&
登录后复制
--background
登录后复制
)等功能,都体现了其作为下载工具的强大。

curl
登录后复制
Client URL)则更加通用,它是一个数据传输工具,支持的协议远不止HTTP/HTTPS,还包括FTP、FTPS、Gopher、SMB、Telnet等二十多种协议。
curl
登录后复制
的设计更侧重于与服务器进行“交互”,它可以发送自定义的HTTP请求头、处理各种认证、上传数据、甚至模拟浏览器行为。它更像是一个“瑞士军刀”,适合那些需要精细控制网络请求的场景,比如测试API接口、调试Web服务、或者进行数据抓取时。

核心差异总结:

  • 默认行为:
    wget
    登录后复制
    默认下载文件到本地,而
    curl
    登录后复制
    默认将内容输出到标准输出(终端)。
  • 递归下载:
    wget
    登录后复制
    天生支持递归下载(
    -r
    登录后复制
    ),而
    curl
    登录后复制
    没有内置的递归下载功能,需要通过脚本实现。
  • 协议支持:
    wget
    登录后复制
    主要支持HTTP、HTTPS和FTP,而
    curl
    登录后复制
    支持的协议种类更多。
  • 上传:
    curl
    登录后复制
    可以上传数据(
    -F
    登录后复制
    -T
    登录后复制
    ),
    wget
    登录后复制
    则没有这个功能。
  • API测试:
    curl
    登录后复制
    在API测试和调试方面更强大,可以轻松构造各种HTTP请求(GET, POST, PUT, DELETE等)。

适用场景:

  • 选择
    wget
    登录后复制
    当你需要下载单个文件、批量下载、镜像网站、或者在脚本中进行非交互式下载时。
  • 选择
    curl
    登录后复制
    当你需要测试API、上传文件、发送自定义HTTP请求、或者与各种不同协议的服务器进行交互时。

坦白说,在我的日常工作中,这两个命令经常是并存的。对于简单的文件下载或网站备份,我会毫不犹豫地使用

wget
登录后复制
。但如果我需要调试一个RESTful API,或者需要发送一个带有特定头部信息的POST请求,那么
curl
登录后复制
就是我的首选。它们各有侧重,互为补充,理解它们的差异能让你在面对不同的网络任务时,选择最合适的工具。

以上就是Linux下载文件命令wget的使用说明的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号