交互式FTP命令(最常用)
这是最传统的方式,通过命令行登录到FTP服务器,然后逐条输入命令进行操作。

登录和连接服务器
你需要连接到FTP服务器。
ftp ftp.example.com # 或者 ftp 192.168.1.100
系统会提示你输入用户名和密码进行登录。
- 匿名登录:如果允许,用户名用
anonymous,密码用你的邮箱地址或任意字符串。
核心拷贝命令
登录成功后,你会看到 ftp> 提示符,这时就可以输入以下命令了。
下载文件(从服务器到本地)
| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
get |
Get | 下载单个文件,这是最常用的下载命令。 | get remote_file.txt local_file.txt (下载服务器上的 remote_file.txt 并保存为本地 local_file.txt,如果省略本地文件名,则同名保存) |
mget |
Multiple Get | 批量下载多个文件,可以配合通配符使用。 | mget *.log (下载服务器上所有以 .log 结尾的文件) mget data_?.csv (下载 data_1.csv, data_2.csv 等) |
上传文件(从本地到服务器)
| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
put |
Put | 上传单个文件,这是最常用的上传命令。 | put local_file.txt remote_file.txt (上传本地的 local_file.txt 到服务器并命名为 remote_file.txt,如果省略远程文件名,则同名上传) |
mput |
Multiple Put | 批量上传多个文件,可以配合通配符使用。 | mput *.txt (上传本地所有以 .txt 结尾的文件) mput report_*.pdf (上传 report_1.pdf, report_2.pdf 等) |
必须配合使用的辅助命令
在使用 get/put 之前,必须设置好本地和远程的路径,否则文件会找不到或传错位置。

| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
lcd |
Local Change Directory | 切换本地(客户端)的工作目录。 | lcd /path/to/your/local/files (确保你要上传/下载的文件在当前本地目录下) |
cd |
Change Directory | 切换远程(服务器)的工作目录。 | cd /path/to/remote/directory (切换到服务器上的目标目录) |
pwd |
Print Working Directory | 显示当前远程(服务器)的工作目录。 | pwd (确认你当前在服务器的哪个位置) |
ls |
List | 列出远程(服务器)当前目录下的文件和文件夹。 | ls ls -l (更详细的列表,类似Linux的ls -l) |
!ls |
(shell command) | 执行本地(客户端)的shell命令。 | !ls (查看本地当前目录有哪些文件) |
binary / bin |
Binary Mode | 设置传输模式为二进制。强烈建议在传输所有文件前都执行此命令! | binary (防止传输图片、压缩包、可执行文件等时出现损坏) |
ascii |
ASCII Mode | 设置传输模式为ASCII(文本),仅用于传输纯文本文件。 | ascii |
prompt |
Prompt | 关闭交互式提示,在使用 mget 或 mput 时,默认每个文件传输前都会询问 y/n,输入 prompt off 可以取消这些提示,实现全自动批量传输。 |
prompt off |
bye 或 quit |
退出FTP会话。 | bye |
完整操作示例
示例1:从服务器下载一个文件
# 1. 连接服务器 $ ftp ftp.example.com Connected to ftp.example.com. 220 (vsFTPd 3.0.3) Name (ftp.example.com:your_user): myuser 331 Please specify the password. Password: ******** 230 Login successful. # 2. 确认位置和文件 ftp> pwd 257 "/home/myuser" ftp> ls 227 Entering Passive Mode (192,168,1,100,12,34) 150 Here comes the directory listing. -rw-r--r-- 1 0 0 1234 Jan 01 12:00 important_file.zip 226 Directory send OK. # 3. 设置本地保存路径和传输模式 ftp> lcd /home/user/Downloads Local directory now /home/user/Downloads ftp> binary # 4. 下载文件 ftp> get important_file.zip local: important_file.zip remote: important_file.zip 227 Entering Passive Mode (192,168,1,100,56,78) 150 Opening BINARY mode data connection for important_file.zip (1234 bytes). 226 File send OK. 1234 bytes received in 0.01 secs (123.4 Kbytes/sec) # 5. 退出 ftp> bye 221 Goodbye.
示例2:向服务器批量上传文件
# 1. 连接并登录... (同上) # 2. 切换到服务器目标目录 ftp> cd /home/myuser/uploads 250 Directory successfully changed. # 3. 设置本地路径和关闭提示 ftp> lcd /path/to/my/project/files Local directory now /path/to/my/project/files ftp> prompt off # 4. 设置二进制模式并批量上传 ftp> binary ftp> mput *.csv local: data_1.csv remote: data_1.csv 227 Entering Passive Mode... 150 Ok to send data. 226 File send OK. local: data_2.csv remote: data_2.csv ... (继续上传其他文件) ... # 5. 退出 ftp> bye
更现代的替代方案
虽然FTP很经典,但它有明显的缺点:
- 不安全:所有用户名、密码和文件内容都是明文传输的,极易被窃听。
- 功能有限:没有现代协议(如SFTP)的权限管理、文件属性等功能。
在现代生产环境中,强烈推荐使用更安全的替代方案。

sftp - 基于 SSH 的安全文件传输
SFTP (SSH File Transfer Protocol) 运行在SSH之上,所有传输都是加密的,它的命令和FTP非常相似,但更安全。
基本用法:
# 连接服务器(会提示输入密码) $ sftp myuser@ftp.example.com # 连接后,sftp的提示符是 sftp> sftp> # 常用命令(和FTP类似,但更强大) sftp> pwd # 查看远程路径 sftp> lpwd # 查看本地路径 sftp> lcd /path/to/local # 切换本地路径 sftp> cd /path/to/remote # 切换远程路径 sftp> ls # 列出远程文件 sftp> !ls # 列出本地文件 sftp> get file.txt # 下载单个文件 sftp> mget *.log # 批量下载 sftp> put file.txt # 上传单个文件 sftp> mput *.log # 批量上传 sftp> bye # 退出
scp - 安全的远程拷贝
SCP (Secure Copy) 是一个简单的命令行工具,用于在主机之间安全地复制文件,它适合一次性的、点对点的文件拷贝,不适合复杂的目录操作。
基本用法:
# 从本地拷贝文件到远程服务器 # 语法: scp [本地文件路径] [用户@远程主机:远程路径] $ scp /home/user/file.txt myuser@ftp.example.com:/home/myuser/ # 从远程服务器拷贝文件到本地 # 语法: scp [用户@远程主机:远程路径] [本地文件路径] $ scp myuser@ftp.example.com:/home/myuser/remote_file.zip /home/user/Downloads/ # 拷贝整个目录(需要加 -r 参数) $ scp -r /home/user/my_folder/ myuser@ftp.example.com:/home/myuser/
总结对比
| 特性 | ftp (经典) |
sftp (推荐) |
scp (简单) |
|---|---|---|---|
| 安全性 | 不安全 (明文) | 安全 (SSH加密) | 安全 (SSH加密) |
| 协议 | FTP | SFTP (over SSH) | SCP (over SSH) |
| 交互性 | 强,支持目录浏览和批量操作 | 强,类似FTP,支持目录浏览和批量操作 | 弱,主要是单文件/目录的点对点拷贝 |
| 使用场景 | 老旧系统、特定需求 | 日常服务器文件管理 | 快速、一次性的文件/目录传输 |
| 命令 | get, put, mget, mput |
get, put, mget, mput |
scp |
- 学习FTP:了解其基本原理和命令有助于维护旧系统。
- 日常使用:请务必使用
sftp,它在安全性和易用性之间取得了很好的平衡。 - 快速拷贝:对于简单的文件复制,
scp非常方便。
