MDTM 命令简介
MDTM 是 Modification TiMe 的缩写,它是一个 FTP 命令,用于从 FTP 服务器获取指定文件的最后修改时间。

这个命令在需要检查文件是否被更新、进行同步操作或者记录文件状态等场景中非常有用。
命令语法
MDTM 命令的基本语法如下:
MDTM <文件名>
MDTM: 命令关键字,不区分大小写(通常使用大写)。<文件名>: 你想查询修改时间的文件名,这个文件名必须是当前工作目录下的一个文件,或者是一个使用绝对路径/相对路径指定的文件。
响应码
执行 MDTM 命令后,FTP 服务器会返回一个三位数的响应码,告诉你操作的结果。
成功响应码
213: 文件修改时间已成功找到。- 服务器会返回
213,后跟文件的修改时间,时间格式通常是YYYYMMDDHHMMSS[.sss](年月日时分秒[.毫秒])。 - 示例:
FTP> MDTM report.txt 213 20251027143000这表示
report.txt文件最后修改时间是 2025年10月27日 14:30:00。
(图片来源网络,侵删)
- 服务器会返回
失败响应码
-
550: 请求的操作未执行,这通常意味着:- 文件不存在。
- 你没有权限访问该文件。
- 你指定的路径是一个目录而不是文件。
- 示例:
FTP> MDTM non_existent_file.txt 550 non_existent_file.txt: No such file or directory.
-
450: 请求的文件操作被中断,文件不可用(正在被另一个进程写入)。 -
500: 语法错误,无法识别命令。 -
**`501``: 命令参数语法错误。
(图片来源网络,侵删)
实际操作示例
下面是一个使用 MDTM 命令的完整交互示例。
# 1. 连接到 FTP 服务器 $ ftp ftp.example.com Connected to ftp.example.com. 220-Welcome to the FTP example server. 220-Please use your email address as the password. 220- Name (ftp.example.com:myuser): anonymous Password: 230 Login successful. # 2. 列出当前目录的文件 ftp> dir 2025-10-27 14:25:00 12345 file1.txt 2025-10-26 10:15:00 67890 file2.log 226 Directory send ok. # 3. 查询 file1.txt 的修改时间 ftp> MDTM file1.txt 213 20251027142500 # 4. 查询 file2.log 的修改时间 ftp> MDTM file2.log 213 20251026101500 # 5. 尝试查询一个不存在的文件 ftp> MDTM missing_file.txt 550 missing_file.txt: No such file or directory. # 6. 退出 FTP ftp> bye 221 Goodbye.
与其他相关命令的对比
| 命令 | 全称 | 功能 | 返回信息 |
|---|---|---|---|
MDTM |
Modification TiMe | 获取文件的最后修改时间。 | 仅返回一个时间戳字符串。 |
SIZE |
- | 获取文件的大小(以字节为单位)。 | 仅返回一个数字。 |
MDTM + SIZE |
- | 结合使用,可以获取文件的唯一标识符(修改时间+大小)。 | 可以用于判断文件是否被修改或内容是否改变。 |
MLST |
LiSt | 详细列出文件或目录的元数据,包括修改时间、大小、权限等。 | 返回结构化的列表信息,比 MDTM 更全面。 |
MLST (现代 FTP 服务器推荐)
对于支持现代 FTP 扩展的服务器,使用 MLST 命令通常是更好的选择,它一次性返回文件的多种属性,包括 modify(修改时间)。
ftp> MLST file1.txt 250- Listing file1.txt modify=20251027142500; size=12345; file1.txt 250 End MLST.
可以看到,MLST 的响应更丰富,并且通常更可靠,但 MDTM 是一个非常基础和广泛支持的命令,几乎所有 FTP 服务器都支持它。
- 用途:
MDTM命令用于获取 FTP 服务器上单个文件的最后修改时间。 - 语法:
MDTM <文件名> - 成功响应:
213 YYYYMMDDHHMMSS - 主要失败原因: 文件不存在 (
550) 或权限不足。 - 适用场景: 文件同步、版本检查、自动化脚本中判断文件是否更新。
在编写脚本时,通常会检查 MDTM 的返回码来判断命令是否成功执行,并解析返回的时间字符串以获取所需信息。
