受到“Getting the source directory of a Bash script from within”的启发,Ruby的方法是什么?
答案 0 :(得分:57)
File.dirname(__FILE__)
将为您提供相对于正在运行的脚本的路径。
File.expand_path(File.dirname(__FILE__))
将为您提供绝对路径。
答案 1 :(得分:45)
__dir__
从Ruby 2.0开始,__dir__
是获得此功能的最简单方法。它
返回文件目录的规范化绝对路径 从中调用此方法。
请参阅__dir__
文档和“Why is __FILE__ uppercase and __dir__ lowercase?”。
答案 2 :(得分:3)
使用__dir__
File.dirname(__FILE__)
不是获取存储脚本的目录的正确方法。
在开始工作目录和脚本文件的目录是相同的,但它可能会改变。
例如:
Dir.chdir('..') do
puts __dir__
puts File.expand_path(File.dirname(__FILE__))
end
存储在运行它的/Desktop/tmp
中的脚本文件将提供输出
/home/mateusz/Desktop/tmp
/home/mateusz/Desktop
答案 3 :(得分:-5)