2

我对linux有点陌生,所以如果它真的很基本,你将不得不原谅我的问题。我有一个包含以下行的代码片段:

    require("axf.sf")

我正在尝试查找包含此代码的文件。我在我的服务器上尝试了以下命令:

    find / -name axf.sf
    find / -name axf.sf*

但我找不到它。我知道代码存在是因为程序有效。

任何建议,将不胜感激。

4

1 回答 1

3

Lua 与许多语言一样,具有搜索所需模块的“路径”的概念。

它可以通过多种方式进行配置,但通常类似于

./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua

=package.path(您可以通过在 Lua 提示符下检查输入来验证您的是否不同)

默认包搜索器首先获取包名称(在您的示例中为“axf.sf”)并将每个点替换为操作系统的目录分隔符。(在您的示例中为“axf/sf”,因为您使用的是 Linux)。然后它用?转换后的包名称替换每个模式,并使用系统上存在的第一个模式。

所以,它会搜索

./axf/sf.lua
/usr/local/share/lua/5.1/axf/sf.lua
/usr/local/share/lua/5.1/axf/sf/init.lua
/usr/local/lib/lua/5.1/axf/sf.lua
/usr/local/lib/lua/5.1/axf/sf/init.lua
/usr/share/lua/5.1/axf/sf.lua
/usr/share/lua/5.1/axf/sf/init.lua
于 2013-03-14T19:51:22.440 回答