以下是 FTP 中最常用和最重要的“判断”或“查询”类命令,我将它们分为几类以便理解。

(图片来源网络,侵删)
连接与状态类命令
这类命令用于建立、断开和查看当前连接的总体状态。
| 命令 | 描述 | 示例 | 响应示例 |
|---|---|---|---|
open <host> [port] |
连接到指定的 FTP 服务器。 | open ftp.example.com 21 |
220 FTP Server ready. |
user <username> |
登录时提供用户名。 | user myuser |
331 Password required for myuser. |
pass <password> |
提供密码进行登录。 | pass mypassword |
230 User logged in. |
quit |
优雅地关闭与服务器的连接,并退出 FTP 客户端。 | quit |
221 Goodbye. |
bye |
quit 的别名,功能相同。 |
bye |
221 Goodbye. |
close |
关闭与服务器的当前连接,但保持在 FTP 客户端内,可以 open 连接到其他服务器。 |
close |
221 Goodbye. |
status |
显示当前 FTP 会话的状态,包括是否已连接、登录用户名、传输模式等。 | status |
Connected to ftp.example.comLogged in as myuserType: binary |
| 在本地 shell 执行命令。 | !ls |
(列出本地当前目录的文件) |
目录与路径判断类命令
这类命令用于查看和判断当前所在的目录位置以及目录内容。
| 命令 | 描述 | 示例 | 响应示例 |
|---|---|---|---|
pwd |
Print Working Directory,显示当前在服务器上的工作目录。 | pwd |
257 "/home/myuser" is current directory. |
ls |
LiSt,列出当前服务器目录下的文件和子目录。 | ls |
drwxr-xr-x 2 user group 4096 Jan 1 12:00 dir1-rw-r--r-- 1 user group 1024 Jan 1 12:00 file1.txt |
dir |
ls 的一个更详细的版本,通常输出格式与 ls -l 相似,提供更多信息。 |
dir |
(输出比 ls 更详细的列表) |
cd <path> |
Change Directory,切换当前服务器上的工作目录。 | cd documents |
250 Directory successfully changed. |
cdup |
Change Directory UP,切换到当前服务器目录的上一级目录。 | cdup |
250 Directory successfully changed. |
文件信息与判断类命令
这类命令用于获取特定文件的详细信息,判断其是否存在、大小、修改时间等。
| 命令 | 描述 | 示例 | 响应示例 |
|---|---|---|---|
!ls <local_path> |
列出本地机器上的文件,注意 前缀。 | !ls -l |
total 8-rw-r--r-- 1 user group 1024 Jan 1 12:00 local_file.txt |
size <filename> |
获取服务器上指定文件的大小(字节)。 | size file1.txt |
213 213 (文件大小) |
mdtm <filename> |
获取服务器上指定文件的最后修改时间。 | mdtm file1.txt |
213 20250101120000 (YYYYMMDDHHMMSS 格式) |
modtime <filename> |
mdtm 的别名,功能相同。 |
modtime file1.txt |
213 20250101120000 |
stat <filename> |
获取服务器上指定文件的详细信息(类似于 ls -l 但只针对单个文件),如果省略文件名,则显示服务器状态。 |
stat file1.txt |
213 File status okay.-rw-r--r-- 1 user group 1024 Jan 1 12:00 file1.txt |
传输模式与类型判断类命令
这类命令用于判断和设置数据传输的方式和文件类型。

(图片来源网络,侵删)
| 命令 | 描述 | 示例 | 响应示例 |
|---|---|---|---|
type |
显示当前的文件传输类型(ASCII 或 Binary)。 | type |
Type: I (I 代表 Image/Binary) |
ascii |
设置传输类型为 ASCII(文本模式),用于传输 .txt, .html, .csv 等文件。 |
ascii |
200 Type set to A. (A 代表 ASCII) |
binary |
设置传输类型为 Binary(二进制模式),用于传输 .zip, .jpg, .exe, .pdf 等所有非文本文件。强烈推荐默认使用此模式。 |
binary |
200 Type set to I. (I 代表 Image/Binary) |
passive |
切换到被动传输模式,在客户端和服务器之间存在防火墙时,此模式通常是必须的。 | passive |
227 Entering Passive Mode (192,168,1,100,12,34) |
passive |
再次执行可以切换回主动模式。 | passive |
227 Entering Active Mode |
帮助与系统信息类命令
| 命令 | 描述 | 示例 | 响应示例 |
|---|---|---|---|
help |
列出所有可用的 FTP 命令。 | help |
The following commands are recognized ... |
help <command> |
获取某个特定命令的详细帮助信息。 | help get |
syntax: get <remote-file> [<local-file>] |
| 在本地 shell 执行命令。 | !ping google.com |
PING google.com (...) |
|
system |
显示 FTP 服务器使用的操作系统类型。 | system |
215 UNIX Type: L8 |
总结与使用建议
在实际使用 FTP 时,一个典型的“判断”流程如下:
- 连接并登录:
ftp ftp.example.com user myusername mypassword
- 确认位置:
pwd # 确认在服务器哪个目录下 ls # 查看服务器上有什么文件 !ls # 查看本地当前目录有什么文件
- 获取文件信息:
size large_file.zip # 判断文件大小,看是否值得下载 mdtm large_file.zip # 判断文件修改时间,看是否是最新版本
- 设置传输模式:
binary # 强烈建议,除非确定是纯文本文件 passive # 如果网络环境复杂,建议开启
- 执行传输:
get large_file.zip # 下载文件 put my_local_file.txt # 上传文件
- 完成操作:
quit # 退出并关闭连接
安全提示:由于 FTP 协议以明文传输用户名和密码,现在已不推荐在生产环境中使用,对于更安全的文件传输,请考虑使用 SFTP (基于 SSH) 或 FTPS (基于 SSL/TLS)。

(图片来源网络,侵删)
