如何在 Lua 中获取最后修改的时间戳

How can I get last modified timestamp in Lua

我正在尝试 Lua 文件处理。

所以,我可以打开、读取、写入、关闭文件。

local session_debug = io.open("/root/session_debug.txt", "a")
session_debug:write("Some text\n")
session_debug:close()

如何知道这个文件的最后修改日期时间戳。

标准 Lua 中没有内置函数可以执行此操作。在没有第三方库的情况下获取它的一种方法是使用 io.popen.

例如,在 Linux 上,您可以使用 stat:

local f = io.popen("stat -c %Y testfile")
local last_modified = f:read()

现在last_modified就是testfile的最后修改时间的时间戳。在我的系统上,

print(os.date("%c", last_modified))

输出 Sat Mar 22 08:36:50 2014.

如果您不介意使用库,LuaFileSystem 允许您获取修改后的时间戳,如下所示:

local t = lfs.attributes(path, 'modification')

一个更详细的错误处理示例(将打印传递给脚本的第一个参数的名称和修改日期):

local lfs = require('lfs')
local time, err = lfs.attributes(arg[1], 'modification')
if err then
    print(err)
else
    print(arg[1], os.date("%c", time))
end