我有一個Ruby腳本,路徑爲/foo/bar/gazook/script.rb
。我還在$HOME/bin
中創建了一個符號鏈接。在創建一個文件符號鏈接之後,如何獲取Ruby中原始文件的路徑?
現在,我想讓我的Ruby腳本訪問目錄/foo
中的某個其他文件,並保留相對路徑,我的腳本中有一個變量FOO_DIRECTORY = File.expand_path(File.dirname(__FILE__) + "/../../")
。
問題是,如果我從它的符號鏈接運行我的腳本,這個相對目錄是錯誤的(因爲我猜它從其他位置擴展)。
我該如何解決這個問題?除了使用絕對路徑還有其他方法嗎?
'expand_path`不能解決符號連接並指定`dir_string`不會幫助:「相對路徑從當前工作目錄引用該過程除非給出dir_string,否則它將用作起點。「](http://ruby-doc.org/core-1.9.3/File.html#method-c-expand_path)。此外,`expand_path`的第二個參數應該是*目錄*,而不是文件名。 – 2011-12-16 20:33:27
好吧,我在〜/ bin目錄下創建了一個測試文件,一個符號鏈接,並且在運行符號鏈接時,我得到了「/ home」。所以我很抱歉,我的解決方案不起作用:( – maprihoda 2011-12-16 21:31:07