From: Tanaka Akira Date: 2005-11-08T13:37:13+09:00 Subject: Re: [ ruby-Bugs-2786 ] Pathname.realpath fails on non-existant path In article <200511080321.jA83LMH5022935@rubyforge.org>, noreply@rubyforge.org writes: > Summary: Pathname.realpath fails on non-existant path > > Initial Comment: > $ ruby -w -r pathname -e 'puts Pathname.new(ARGV[0]).realpath' /asdfasdf > /usr/lib/ruby/1.8/pathname.rb:341:in `lstat': No such file or directory - /asdfasdf (Errno::ENOENT) > from /usr/lib/ruby/1.8/pathname.rb:341:in `realpath' > from -e:1 It is intended because POSIX. | ERRORS | | The realpath() function shall fail if: ... | [ENOENT] | A component of file_name does not name an existing file or file_name | points to an empty string. > other realpath implementations like readlink -f and FreeBSD realpath will just echo the path. It seems readlink -f in coreutils 5.2.1 doesn't behaves as so. debian-sid% readlink -f /asdfasdf zsh: exit 1 readlink -f /asdfasdf debian-sid% readlink --version readlink (coreutils) 5.2.1 Written by Dmitry V. Levin. Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % On FreeBSD, realpath /asdfasdf behaves as you said. However realpath /xxx/yyy causes an error. So some non-existant paths are not echoed. freebsd54% realpath /xxx/yyy realpath: /xxx: No such file or directory zsh: exit 1 realpath /xxx/yyy -- Tanaka Akira