MDTM 是什么?
MDTM 是 MoDifiTiMe 的缩写,它是 FTP 协议中的一个命令,用于从 FTP 服务器上获取远程文件的最后修改时间。

当你连接到 FTP 服务器后,可以使用 MDTM 命令查询某个特定文件是在什么时候被最后修改的。
MDTM 命令的语法
MDTM 命令的基本语法如下:
MDTM <文件名>
<文件名>:你需要查询修改时间的文件名,如果文件名中包含空格,通常需要用引号()括起来。
MDTM 命令的工作流程
当你发送 MDTM 命令后,FTP 服务器会执行以下操作:
- 接收命令:服务器解析你发送的
MDTM <文件名>命令。 - 检查文件:服务器检查你指定的文件是否存在,以及你是否有权限读取该文件的元数据。
- 返回响应:
- 成功:如果文件存在且你有权限,服务器会返回一个以
213开头的状态码,并在后面跟上文件的最后修改时间。 - 失败:如果文件不存在、你没有权限或发生其他错误,服务器会返回一个错误码,
550:文件不存在或不可访问("No such file or directory")。450:文件暂时不可访问。500:语法错误,无法识别的命令。
- 成功:如果文件存在且你有权限,服务器会返回一个以
响应格式
成功时,MDTM 的响应格式遵循 FTP 协议的标准,具体格式如下:

213 <YYYYMMDDHHMMSS[.sss]>
213:表示成功返回文件时间信息。YYYYMMDDHHMMSS[.sss]:这是核心的时间信息。YYYY:4位年份 (2025)MM:2位月份 (10for October)DD:2位日期 (26)HH:2位小时,使用24小时制 (14for 2 PM)MM:2位分钟 (30)SS:2位秒 (45)[.sss]:可选部分,表示毫秒,并非所有服务器都支持。
示例:
如果服务器返回:
213 20251026143045
这表示该文件在 2025年10月26日 14:30:45 (UTC时间) 被最后修改。
重要提示:FTP 协议本身不指定时间戳是 UTC 还是本地时间,在实践中,绝大多数 FTP 服务器返回的时间戳都是 协调世界时。
实际使用示例
假设你已经通过 ftp 命令连接到了一个服务器,并且当前目录下有一个名为 report.txt 的文件。

ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 1234 Oct 26 14:30 report.txt 226 Directory send ok. ftp> mdtm report.txt 213 20251026143045 ftp> mdtm non_existent_file.txt 550 non_existent_file.txt: No such file or directory. ftp> quit 221 Goodbye.
相关命令
MDTM 命令通常与其他 FTP 命令结合使用,特别是:
LIST(ls):列出目录内容。LIST命令的输出(尤其是在被动模式下)通常会包含文件的修改时间、大小和权限等信息。MDTM提供了一种更精确、可编程的方式来单独获取时间戳,而不需要解析LIST命令的文本输出。SIZE:获取远程文件的大小。MDTM和SIZE是一对常用的命令,用于在传输前检查文件的元数据。MDTM的写操作:虽然MDTM主要用于读取时间,但 FTP 协议也支持一个用于设置文件修改时间的命令,其语法为MDTM <YYYYMMDDHHMMSS> <文件名>,这个写操作的命令支持度并不像读操作那样广泛,很多服务器可能不支持或不允许客户端随意修改文件时间戳。
| 特性 | 描述 |
|---|---|
| 命令名称 | MDTM (MoDifiTiMe) |
| 功能 | 获取远程 FTP 服务器上文件的最后修改时间。 |
| 语法 | MDTM <文件名> |
| 成功响应 | 213 <YYYYMMDDHHMMSS[.sss]> |
| 时间格式 | YYYYMMDDHHMMSS,通常为 UTC 时间。 |
| 主要用途 | 在脚本和自动化任务中,用于检查文件是否已更新,或与本地文件进行同步。 |
MDTM 是一个非常实用的命令,尤其是在需要编写脚本来自动化文件处理或同步时,它能让你精确地判断远程文件的状态。
