如何在 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
我正在尝试 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