在Linux系统中,FTP(File Transfer Protocol)是一种常用的文件传输协议,用于在客户端和服务器之间进行文件的上传和下载,Linux提供了多种命令行工具来执行FTP操作,其中wget、curl和传统的ftp命令是最为常用的,本文将详细介绍这些工具的使用方法,帮助用户高效完成FTP文件下载任务。

使用wget命令下载FTP文件
wget是一个功能强大的网络文件下载工具,支持HTTP、HTTPS和FTP等多种协议,其语法简洁,适合批量下载和断点续传。
基本语法
wget [选项] FTP地址
常用选项
-r:递归下载,下载指定目录下的所有文件。-np:不下载父目录,避免递归时超出目标目录范围。-nH:不创建以主机名命名的目录,直接将文件保存到当前目录。-c:断点续传,如果下载中断,可从断点继续下载。-P 目录:指定文件保存的本地目录。-u 用户名:密码:提供FTP认证信息(需结合--ftp-user和--ftp-password使用)。
示例
-
下载单个文件
wget ftp://example.com/path/to/file.zip
-
递归下载整个目录
wget -r -np -nH ftp://example.com/directory/
-
带认证信息的下载
wget --ftp-user=username --ftp-password=password ftp://example.com/file.txt
-
断点续传
wget -c ftp://example.com/largefile.iso
使用curl命令下载FTP文件
curl是一个灵活的传输工具,支持多种协议,适合需要精细控制下载过程的场景。
基本语法
curl [选项] FTP地址
常用选项
-O:以远程文件名保存到本地。-o 文件名:指定本地保存的文件名。-u 用户名:密码:提供FTP认证信息。-L:跟随重定向(适用于FTP服务器跳转)。-C -:断点续传。
示例
-
下载单个文件并保持原文件名

curl -O ftp://example.com/file.zip
-
指定文件名保存
curl -o localfile.txt ftp://example.com/remote.txt
-
带认证信息的下载
curl -u username:password ftp://example.com/protected/file.dat
-
断点续传
curl -C - -O ftp://example.com/largefile.iso
使用传统ftp命令下载文件
Linux系统自带的ftp命令是交互式FTP客户端,适合需要手动操作或复杂传输逻辑的场景。
基本步骤
- 连接FTP服务器
ftp ftp.example.com
- 输入用户名和密码(若为匿名FTP,可使用
anonymous和任意邮箱作为密码)。 - 使用下载命令
get 文件名:下载单个文件。mget 文件名1 文件名2 ...:批量下载多个文件。prompt off:关闭交互提示,避免批量下载时逐个确认。lcd 本地目录:切换本地保存路径。bin:切换二进制模式(适用于非文本文件)。
- 退出FTP
bye
示例
-
匿名下载文件
ftp ftp.example.com anonymous # 用户名 your@email.com # 密码 bin # 二进制模式 get file.zip # 下载文件 bye # 退出
-
批量下载文件
ftp ftp.example.com username password prompt off # 关闭交互提示 mget *.txt # 下载所有txt文件 bye
高级技巧与注意事项
-
使用被动模式(PASV)
部分FTP服务器需要启用被动模式以避免防火墙问题,在ftp命令中输入passive即可切换;wget和curl默认支持被动模式。
-
限制下载速度
wget可通过--limit-rate=速度限制下载速率,wget --limit-rate=100k ftp://example.com/file.zip
-
下载进度显示
curl默认显示进度条,wget需添加--show-progress选项:wget --show-progress ftp://example.com/file.zip
-
错误处理
若下载失败,可检查FTP服务器地址、用户名密码是否正确,或确认网络连接是否正常。
Linux提供了多种FTP下载工具,用户可根据需求选择合适的方式:wget适合批量下载和断点续传,curl适合灵活控制下载过程,而传统ftp命令则适合交互式操作,掌握这些命令的基本语法和高级选项,能够显著提升文件传输效率,在实际使用中,建议结合服务器配置和网络环境选择合适的工具,并注意认证信息和错误处理,以确保下载任务的顺利完成。




