Linux文件下载命令大全:从基础到进阶

发布于 2025年5月19日阅读 882未分类

在Linux系统中,除了常见的wgetcurl,还有许多其他命令可用于文件下载,每种工具都有其独特的功能和适用场景。本文将详细介绍这些命令的使用方法及参数说明,帮助你更高效地完成文件传输任务。

1. wget

简介wget 是一个非交互式的命令行下载工具,支持HTTP、HTTPS和FTP协议,适合批量下载和递归抓取网页资源。 常用参数

  • -O <文件名>:指定下载文件的保存名称。
  • -c:断点续传,继续未完成的下载。
  • -r:递归下载整个目录或网站。
  • -P <目录>:指定下载文件的保存路径。
  • -q:静默模式,不显示下载进度。

示例

Bash
wget -O image.jpg https://example.com/file.jpg  # 下载并重命名文件
wget -c https://example.com/large.iso          # 断点续传
wget -r -np https://example.com/directory/    # 递归下载目录(不追溯父目录)

2. curl

简介curl 支持多种协议(HTTP、FTP、SFTP等),功能更侧重于数据传输而非单纯下载,适合API调试和复杂请求场景。 常用参数

  • -o <文件名>:将输出保存到文件。
  • -O:使用远程文件名保存。
  • -L:自动跟随重定向。
  • -x <代理地址>:通过代理服务器下载。
  • -H:自定义请求头(如-H "Authorization: Bearer token")。

示例

Bash
curl -o data.json https://api.example.com/data  # 保存为指定文件
curl -LO https://example.com/file.tar.gz        # 使用远程文件名并跟随重定向
curl -x 192.168.1.1:8080 http://example.com    # 通过代理下载

3. scp

简介:基于SSH协议的安全文件传输工具,适用于本地与远程服务器之间的文件传输。 常用参数

  • -r:递归复制目录。
  • -P <端口>:指定SSH端口(默认22)。
  • -p:保留文件权限和时间戳。

示例

Bash
scp -P 2222 local_file.txt user@remote:/path/  # 指定端口上传文件
scp -r user@remote:/remote_dir ./local_dir     # 递归下载目录

4. rsync

简介:支持增量同步和高效传输,常用于备份和镜像。 常用参数

  • -avz:归档模式(保留属性)、显示进度、压缩传输。
  • --delete:删除目标端多余文件以保持同步。
  • -e:指定远程Shell(如-e "ssh -p 2222")。

示例

Bash
rsync -avz /local_dir user@remote:/remote_dir  # 同步本地目录到远程
rsync -avz --delete user@remote:/backup ./     # 删除本地多余文件

5. lftp

简介:支持FTP、SFTP、HTTP等多种协议,提供交互式操作和批量任务管理。 常用参数

  • mirror:镜像下载或上传目录。
  • get/put:下载或上传单个文件。
  • set ftp:passive-mode 1:启用被动模式(解决防火墙问题)。

示例

Bash
lftp -e "mirror --parallel=5 /remote_dir /local_dir" sftp://user@host  # 并行下载目录
lftp -c "open ftp://example.com; get file.txt"                      # 非交互式下载

6. aria2

简介:多线程下载工具,支持HTTP、BT和Metalink协议,适合大文件高速下载。 常用参数

  • -s <线程数>:指定并发连接数(默认5)。
  • -c:断点续传。
  • -i <文件>:从文件读取URL列表批量下载。

示例

Bash
aria2c -s 10 -c https://example.com/large.iso    # 多线程下载
aria2c -i urls.txt                               # 批量下载URL列表中的文件

7. httpie

简介:面向API的HTTP客户端,支持JSON和会话管理,也可用于简单文件下载。 常用参数

  • --download:下载文件并保存。
  • --output <文件>:指定输出路径。
  • --session:保存会话状态(如Cookie)。

示例

Bash
http --download GET https://example.com/file.jpg  # 下载文件
http --session=user session.json api.example.com   # 使用会话保持登录状态

总结

  • wget/curl:基础下载工具,适合简单场景。
  • scp/rsync:适用于服务器间安全传输和同步。
  • lftp/aria2:多协议支持和高性能下载。
  • httpie:更适合API交互和结构化数据请求。

根据需求选择合适的工具,例如批量下载用wgetaria2,服务器同步用rsync,调试API用curlhttpie。掌握这些命令的参数组合,能显著提升Linux环境下的工作效率。