在Linux系统中,FTP(File Transfer Protocol)是一种常用的文件传输协议,用户可以通过命令行工具实现本地与远程服务器之间的文件上传和下载,本文将详细介绍如何使用Linux FTP命令下载文件,包括基本操作、高级技巧及常见场景的应对方法。

FTP命令的基本使用
首先需要通过终端连接到FTP服务器,基本语法为ftp [服务器地址],执行ftp ftp.example.com后,系统会提示输入用户名和密码,成功登录后,即可进入FTP交互模式,此时可以执行各种文件传输命令,下载文件的核心命令是get或retr,其中get用于下载单个文件,retr是底层命令,功能与get相同,下载远程服务器上的file.txt到本地当前目录,可执行get file.txt,若需指定本地保存路径和名称,可使用get remote_file local_file,如get data.zip /home/user/docs/data.zip。
批量下载与目录操作
当需要下载整个目录时,直接使用get命令无法实现,需结合mget(multiple get)命令。mget支持通配符,例如mget *.zip可下载所有ZIP文件,但需注意,默认情况下mget会逐个提示用户确认,可通过prompt off命令关闭交互提示,实现批量自动下载,需先通过cd命令切换到远程目标目录,例如cd /remote/path,再执行下载操作,本地目录的切换则使用lcd命令,如lcd /local/path,确保文件下载到指定位置。
文件传输模式与进度显示
FTP传输分为主动模式(PORT)和被动模式(PASV),被动模式可穿透防火墙,推荐使用,通过passive命令切换至被动模式,传输大文件时,可通过hash命令开启进度显示,传输过程中会以符号标记已传输数据块,直观了解传输进度,若需显示传输速度和剩余时间,可结合命令调用本地工具,如! pv -t -e -r /local/file(需安装pv工具)。
高级技巧与常见问题
- 断点续传:若传输中断,可使用
reget命令替代get,reget会检测本地文件大小,从断点处继续传输,例如reget large_file.iso。 - 二进制/文本模式切换:默认为ASCII模式,适合文本文件;传输二进制文件(如图片、压缩包)时,需执行
binary或bin命令,避免文件损坏。 - 匿名下载:部分服务器支持匿名登录,用户名输入
anonymous,密码可为任意邮箱(如user@example.com)。
以下为常用FTP下载命令的速查表:

| 命令 | 功能描述 | 示例 |
|---|---|---|
get file.txt |
下载单个文件 | get report.pdf |
mget *.zip |
批量下载匹配文件 | mget data_*.csv |
reget large.iso |
断点续传下载 | reget backup.tar.gz |
binary |
切换至二进制传输模式 | binary |
passive |
切换至被动模式 | passive |
lcd /path |
切换本地目录 | lcd /Downloads |
相关问答FAQs
Q1: 如何通过FTP下载整个目录及其子目录?
A: FTP原生命令不支持递归下载目录,但可通过组合命令实现,先在远程目录执行mput *上传本地目录结构(需提前创建),或使用第三方工具如lftp,其mirror命令支持递归下载:lftp -u username,password ftp.example.com -e "mirror /remote/path /local/path; exit"。
Q2: 下载文件时出现“550 Permission denied”错误怎么办?
A: 该错误通常是由于权限不足导致,可尝试以下方法:1)确认登录用户对远程文件有读取权限;2)检查远程文件是否被其他进程占用;3)联系服务器管理员调整权限,若为匿名用户,部分服务器仅允许下载特定目录(如pub)下的文件。
