Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > pathnameライブラリ > Pathnameクラス > realpath

instance method Pathname#realpath

realpath(basedir = nil) -> Pathname[permalink][rdoc]
realpath -> Pathname

余計な "."、".." や "/" を取り除いた新しい Pathname オブジェクトを返します。

また、ファイルシステムをアクセスし、実際に存在するパスを返します。シンボリックリンクも解決されます。

self が指すパスが存在しない場合は例外 Errno::ENOENT が発生します。

[PARAM] basedir:
ベースディレクトリを指定します。省略するとカレントディレクトリになります。
require 'pathname'

Dir.rmdir("/tmp/foo")      rescue nil
File.unlink("/tmp/bar/foo") rescue nil
Dir.rmdir("/tmp/bar")      rescue nil

Dir.mkdir("/tmp/foo")
Dir.mkdir("/tmp/bar")
File.symlink("../foo", "/tmp/bar/foo")
path = Pathname.new("bar/././//foo/../bar")

Dir.chdir("/tmp")

p path.realpath

=> ruby 1.8.0 (2003-10-10) [i586-linux]
   #<Pathname:/tmp/bar>

[SEE_ALSO] Pathname#realdirpath, File.realpath