如何在Lua中检查文件是否可执行?

如何在 Lua 中检查一个字符串是否是可执行文件的路径?似乎标准库和 LuaFileSystem 都没有提供这样的方法。

点赞
用户12048
用户12048

luaposix 有一个 stat 函数。它返回一个数字,其中包含执行权限位(与 LuaFileSystem 不同,它只提供文件类型)。

还有 access 可以检查仅当前用户的权限。

2013-05-09 16:27:37
用户149076
用户149076

LuaFileSystem有一个lfs.attributes()函数,它返回一个表格。这个表格中有一个名为"mode"的键,它包含一个描述节点类型(文件、目录、套接字等)的字符串,这有些不合常理。

虽然在它作为该模块规范参考的网站(http://keplerproject.github.io/luafilesystem/manual.html)中没有列出来,但是在这个表格中还有一个名为'permissions'的键。我认为,你可以对它进行任何"x"字符的解析。

我是这样发现的:

#!lua
local lfs = require 'lfs'
attr = lfs.attributes('./some_file')
for name, value in pairs(attr) do
    print (name,value)
    end
2013-05-09 16:34:42