curlAndwget

wgetcurl 是两款强大的命令行工具,用于从网络上下载文件或与服务器交互,功能类似但有所侧重。以下是详细介绍:


一、wget

1. 概述

wget(全称 “World Wide Web Get”)是一个非交互式网络下载工具。它的特点是简单高效,专注于下载文件,特别适合递归下载和处理网络中断后的续传。

2. 主要特性

  • 支持 HTTP、HTTPS 和 FTP 协议。
  • 支持断点续传。
  • 可递归下载整个网站,甚至可将其保存为本地镜像。
  • 易于脚本自动化集成。

3. 基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 下载单个文件
wget https://example.com/file.zip

# 下载并保存到指定文件名
wget -O custom_name.zip https://example.com/file.zip

# 断点续传下载
wget -c https://example.com/file.zip

# 下载整个网站(递归)
wget -r https://example.com

# 设置下载速度限制(以 KB/s 为单位)
wget --limit-rate=100k https://example.com/file.zip

# 指定用户代理(伪装浏览器)
wget --user-agent="Mozilla/5.0" https://example.com/file.zip

# 在后台运行并输出到日志文件
wget -b -o log.txt https://example.com/file.zip

4. 高级功能

  • 镜像网站:

    1
    2
    wget --mirror -p --convert-links -P ./local_dir https://example.com

  • 添加认证信息:

    1
    2
    wget --http-user=USERNAME --http-password=PASSWORD https://example.com/secure_file.zip


二、curl

1. 概述

curl(全称 “Client URL”)是一个更为通用的命令行工具,可以用于与服务器交互,包括文件下载、上传、发送请求、查看响应头等。

2. 主要特性

  • 支持大量协议(HTTP、HTTPS、FTP、SFTP、SMTP 等)。
  • 可以自定义 HTTP 请求头。
  • 支持 POST、PUT、DELETE 等各种 HTTP 方法。
  • 更适合用于复杂的 API 调试和开发场景。

3. 基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 下载文件
curl -O https://example.com/file.zip

# 下载并保存为指定文件名
curl -o custom_name.zip https://example.com/file.zip

# 显示 HTTP 响应头
curl -I https://example.com

# 使用 POST 方法提交表单数据
curl -X POST -d "key1=value1&key2=value2" https://example.com/form

# 下载时显示进度条
curl -# -O https://example.com/file.zip

# 指定用户代理
curl -A "Mozilla/5.0" https://example.com

# 添加认证信息
curl -u USERNAME:PASSWORD https://example.com/secure_file.zip

4. 高级功能

  • 模拟 API 调用:

    1
    2
    curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com/endpoint

  • 断点续传:

    1
    2
    curl -C - -O https://example.com/file.zip

  • 上传文件:

    1
    2
    curl -F "file=@local_file.txt" https://example.com/upload

  • 保存 HTTP 响应头和内容:

    1
    2
    curl -D headers.txt -o content.html https://example.com


三、wgetcurl 的比较

特性 wget curl
目标用途 文件下载(支持断点续传) 文件下载、API 调试和开发
协议支持 HTTP/HTTPS/FTP 多种协议(HTTP/HTTPS/FTP/SFTP)
递归下载 支持 不支持
断点续传 支持(简单易用) 支持(需加参数)
HTTP 请求定制 基本支持 高度灵活
命令复杂性 简单直观 灵活但相对复杂
默认安装情况 大多数 Linux 发行版默认安装 部分系统需要手动安装

四、应用场景总结

  • 文件下载:优先使用 wget,特别是大文件或需要递归下载的场景。
  • API 调试和开发:优先使用 curl,因为它可以灵活构造 HTTP 请求并查看响应。
  • 脚本集成:视需求而定,curl 在更复杂场景中通常表现更强大。

需要根据具体场景选择合适的工具,熟练掌握这两者能够极大提高工作效率。


curlAndwget
https://williammarioalan.github.io/2025/01/30/curlAndwget/
Author
mario
Posted on
January 30, 2025
Licensed under