ソースファイルがあるディレクトリをカレントにする方法

まずはソース

p Dir.pwd
p File.expand_path(__FILE__)
cuDir = File.expand_path(__FILE__).sub(/[^\/]+$/,'')
p cuDir
Dir::chdir(cuDir)
p Dir.pwd


/home/kasei-san/workで実行すると…

%ruby /home/kasei-san/rabo/test/test.rb
"/home/kasei-san/work"
"/home/kasei-san/rabo/test/test.rb"
"/home/kasei-san/rabo/test/"
"/home/kasei-san/rabo/test"

説明

変数 __FILE__ で、ソースファイルのPathを取得
それをFile.expandで、絶対Pathに変換
Pathからファイル名を切り取って、ディレクトリのPathに変換
その後、Dir::chdirで、カレントディレクトリを移動

経緯

cron使うときに、ソースの中にDir::chdirで固定の絶対Path書くのもかっこ悪いので調べました

参考リンク


そんなかんじー