我对linux有点陌生,所以如果它真的很基本,你将不得不原谅我的问题。我有一个包含以下行的代码片段:
require("axf.sf")
我正在尝试查找包含此代码的文件。我在我的服务器上尝试了以下命令:
find / -name axf.sf
find / -name axf.sf*
但我找不到它。我知道代码存在是因为程序有效。
任何建议,将不胜感激。
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