如何在 FTP 服务器上查找文件的时间戳

如何在 FTP 服务器上查找文件的时间戳

我需要在 FTP 文件夹中查找最新创建的文件。但是,FTP 服务器未使用 LIST 命令返回文件的完整时间戳(缺少年份):

drwxr-xr-x   2 owner    group               0 Nov  9 17:29 archive
drwxr-xr-x   2 owner    group               0 Nov  9 17:35 category
drwxr-xr-x   2 owner    group               0 Jan  9 07:21 images

并且不支持MLSD命令。

所以目前我使用 MDTM 命令检查每个文件的时间戳。有没有更有效的方法?

我正在使用ftplib包装器。

答案1

man ftp 说:

 ls [remote-directory] [local-file]
             Print a listing of the contents of a directory on the remote machine.
             The listing includes any system-dependent information that the server
             chooses to include; for example, most UNIX systems will produce output
             from the command ‘ls -l’.  (See also nlist.)  If remote-directory is
             left unspecified, the current working directory is used.  If interac‐
             tive prompting is on, ftp will prompt the user to verify that the last
             argument is indeed the target local file for receiving ls output.  If
             no local file is specified, or if local-file is ‘-’, the output is
             sent to the terminal.

所以,大多数 UNIX 系统都会生成命令“ls -l”的输出并且该命令可以显示日期或日期和时间,具体取决于文件的“年龄”:

-rw-rw-r-- 1 user group        4 ene 21 12:40 keepalive.out
-rw-rw-r-- 1 user group   525292 oct  4  2013 Linux.svg

考虑到你FTP 命令后可靠高效地获取时间戳,我担心您的方法(MDTM 命令)是唯一不包括编程内容的方法。

答案2

你可能想尝试FTP 实用程序。虽然它不是标准的 Python 模块,也不是内置模块的一部分,但它具有与 os.stat 类似的功能。它允许您获取详细的文件统计信息,例如文件创建日期、大小等。它是 ftplib 的高级接口。

您可能还会发现此链接很有用 -

http://mcdc.missouri.edu/libs/python/ftputil/ftputil.html

相关内容