命令行下载东西怎么操作?

在命令行环境下下载文件是开发者、系统管理员和高级用户的必备技能,相比图形界面工具,命令行下载具有高效、自动化、可脚本化等优势,尤其适合服务器环境或批量处理场景,本文将详细介绍几种主流命令行下载工具的使用方法、核心参数及常见应用场景,帮助读者掌握不同场景下的下载技巧。

命令行下载东西怎么下载

常用命令行下载工具及基础用法

命令行下载工具中,wgetcurlaria2c 是最常用的三种,它们各有侧重,支持不同的协议和功能,可根据需求选择。

wget:经典下载工具,支持递归与断点续传

wget 是 GNU 项目开发的工具,默认在大多数 Linux/macOS 系统中预装,支持 HTTP、HTTPS、FTP 协议,具备递归下载、断点续传、后台下载等核心功能。

基础语法
wget [选项] URL

常用参数及示例

  • 简单下载:直接下载文件到当前目录,文件名默认为 URL 中的最后一部分。
    wget https://example.com/file.zip
  • 指定保存目录:使用 -P 参数指定目标路径。
    wget -P /path/to/download https://example.com/file.zip
  • 显示下载进度条:默认已显示,若需更详细信息(如速度、剩余时间),可加 -v(verbose)参数。
    wget -v https://example.com/file.zip
  • 断点续传:网络中断后使用 -c 参数续传,避免重新下载。
    wget -c https://example.com/large_file.iso
  • 后台下载:使用 -b 参数将任务放入后台,适合下载大文件时退出终端仍继续。
    wget -b https://example.com/large_file.iso
  • 递归下载整个网站-r 参数递归下载,-np 不下载父级目录,-k 将链接转为本地可访问。
    wget -r -np -k https://example.com/docs/
  • 限速下载--limit-rate 参数限制下载速度(单位为 K、M)。
    wget --limit-rate=100k https://example.com/file.zip

curl:多功能网络工具,支持协议广泛

curl 最初以 HTTP 客户端工具设计,支持 FTP、SMTP、SCP 等 20+ 种协议,功能远超下载本身(如上传、模拟请求、调试接口),是开发者的“瑞士军刀”。

基础语法
curl [选项] URL

常用参数及示例

命令行下载东西怎么下载

  • 简单下载:默认将输出打印到终端,需用 -o-O 保存到文件。
    # 保存为指定文件名
    curl -o local_file.zip https://example.com/file.zip
    # 保存为 URL 中的原文件名
    curl -O https://example.com/file.zip
  • 显示进度条--progress-bar 或 显示简洁进度条,-l 显示详细进度(含速度、剩余时间)。
    curl -# -O https://example.com/large_file.iso
  • 断点续传-C - 自动检测断点并续传。
    curl -C - -O https://example.com/large_file.iso
  • 跟随重定向-L 参数跟随 HTTP 301/302 重定向,确保下载最终文件。
    curl -L -O https://example.com/redirect_url/file.zip
  • 下载带认证的资源-u 参数指定用户名和密码(适用于 Basic 认证)。
    curl -u username:password -O https://example.com/private/file.zip
  • 通过代理下载--proxy 指定代理服务器。
    curl --proxy http://proxy.example.com:8080 -O https://example.com/file.zip

aria2c:多线程下载工具,适合大文件与 BT 下载

aria2c 是轻量级多线程下载工具,支持 HTTP、HTTPS、FTP、BT、磁力链接,能显著提升下载速度(尤其适合大文件),同时支持断点续传和批量下载。

安装说明

  • Linux(Debian/Ubuntu):sudo apt install aria2
  • macOS(通过 Homebrew):brew install aria2

基础语法
aria2c [选项] URL

常用参数及示例

  • 多线程下载-x 单个连接的最大线程数,-s 最大总线程数(默认 5,建议 16-32)。
    aria2c -x 16 -s 16 https://example.com/large_file.iso
  • 断点续传--continue 默认开启,中断后重新执行命令即可续传。
    aria2c --continue https://example.com/large_file.iso
  • 保存指定目录-d 参数指定路径。
    aria2c -d /path/to/download https://example.com/file.zip
  • 下载 BT/磁力链接:直接传入磁力链接或 BT 文件。
    # 下载磁力链接
    aria2c "magnet:?xt=urn:btih:..."
    # 下载 BT 文件
    aria2c --input-file example.torrent
  • 限速与优先级--max-overall-download-limit 限制全局下载速度,-l 设置优先级(数字越大优先级越高)。
    aria2c --max-overall-download-limit=100K -l 1 https://example.com/file1.zip https://example.com/file2.zip

工具对比与选择

以下是三种工具的核心特点对比,便于根据场景快速选择:

功能 wget curl aria2c
支持协议 HTTP/HTTPS/FTP 20+ 种(含 SMTP、SCP) HTTP/HTTPS/FTP/BT/磁力
多线程下载 不支持 不支持 支持(默认 5 线程)
断点续传 支持(-c 支持(-C - 默认支持
后台下载 支持(-b 需结合 &nohup 支持(-d 后台)
递归下载 支持(-r 不支持 不支持
BT/磁力下载 不支持 不支持 支持
脚本友好性 高(简洁语法) 高(灵活参数) 中(需理解多线程逻辑)

常见场景应用

批量下载多个文件

若需下载多个文件,可将 URL 存入文本文件(如 urls.txt),每行一个 URL,再通过工具批量处理:

  • wgetwget -i urls.txt
  • curlcurl -K urls.txt(需按 curl 配置文件格式编写)
  • aria2caria2c -i urls.txt(支持直接读取文本文件)

下载带特殊字符的文件名

若 URL 包含空格、中文等特殊字符,需用引号包裹 URL,或对特殊字符转义:

命令行下载东西怎么下载

wget "https://example.com/文件名 with spaces.zip"
curl -O "https://example.com/文件名 with spaces.zip"

通过代理批量下载

需代理访问时,可通过环境变量或参数指定代理(以 HTTP 代理为例):

# wget(环境变量)
export http_proxy=http://proxy.example.com:8080
wget https://example.com/file.zip
# curl(参数)
curl --proxy http://proxy.example.com:8080 -O https://example.com/file.zip
# aria2c(参数)
aria2c --http-proxy=http://proxy.example.com:8080 https://example.com/file.zip

错误排查技巧

下载失败时,可通过以下步骤快速定位问题:

  1. 检查 URL 可访问性:用 curl -I URL 查看 HTTP 状态码(如 404 表示文件不存在,403 表示权限不足)。
  2. 验证网络连接pingtraceroute 测试目标服务器是否可达。
  3. 检查权限:确保对目标目录有写入权限(Linux 下用 ls -ld /path/to/dir 检查)。
  4. 查看工具日志wget 使用 -v 参数显示详细日志,curl 使用 -v--trace 跟踪请求过程。

相关问答FAQs

Q1: 命令行下载时如何显示实时下载进度,避免“静默”下载?
A: 不同工具可通过不同参数显示进度:

  • wget:默认已显示进度条,若未显示可加 -v 参数(如 wget -v URL)。
  • curl:使用 显示简洁进度条(如 curl -# -O URL),或 -l 显示详细进度(含速度、剩余时间)。
  • aria2c:默认显示进度条,可通过 --summary-interval=NUM 调整进度更新频率(如 aria2c --summary-interval=5 URL 每 5 秒更新一次)。

Q2: 如何批量下载一个网站上的所有图片(仅扩展名为 .jpg 和 .png)?
A: 可结合 wget 的递归下载和 -A 参数(指定文件扩展名)实现:

wget -r -np -A "jpg,png" https://example.com/images/

参数说明:

  • -r:递归下载目录;
  • -np:不下载父级目录,避免无限递归;
  • -A "jpg,png":仅下载扩展名为 .jpg.png 的文件。
    若需过滤特定路径(如排除 /admin/ 目录),可加 -X "admin" 参数。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14356.html

(0)
酷番叔酷番叔
上一篇 1天前
下一篇 1天前

相关推荐

  • SCP需要额外安装吗?

    scp命令是OpenSSH工具套件的一部分,在绝大多数Linux/Unix系统(包括macOS)中,OpenSSH通常作为基础组件预装,直接使用scp命令通常无需额外安装特定软件包,如果系统确实缺失,需要安装的是openssh-client包(或其等效包),而非名为“scp”的独立包。

    2025年7月27日
    1200
  • 树莓派如何打开命令行?四种方法速看

    图形界面直接打开(最常用)适用场景:树莓派已正常启动桌面环境(如默认的 PIXEL 桌面),定位终端图标:在桌面左上角菜单栏,找到黑色显示器图标(标签通常为 “Terminal”),点击打开:单击该图标,系统将弹出命令行窗口(黑色背景,显示 pi@raspberrypi:~ $ 提示符),验证成功:输入 ls……

    2025年7月9日
    2600
  • 电脑开不了机?简单几步搞定,重启试试!

    基础检查包括确认设备连接、电源状态及指示灯是否正常,随后执行重启操作以解决常见临时性故障。

    2025年8月9日
    800
  • vi模式切换总记不住?

    vi编辑器拥有三种核心模式:普通模式(移动光标/执行命令)、插入模式(编辑文本)和命令行模式(输入保存/退出等指令),通过ESC键返回普通模式,再输入冒号(:)进入命令行模式,实现高效文本编辑操作。

    2025年7月4日
    2100
  • 如何修复失效的命令提示符?

    恢复CMD命令指修复Windows命令提示符功能异常,使其能正常执行指令,常用方法包括运行系统文件检查器(SFC)、修复环境变量路径或重置CMD设置。

    2025年7月16日
    2000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信