Re: Stumbled upon relative name resolution across symlinks
- Date: Fri, 2 Nov 2018 12:15:34 +0000
- From: Ken Brown <kbrown@xxxxxxxxxxx>
- Subject: Re: Stumbled upon relative name resolution across symlinks
On 11/1/2018 6:39 PM, Andrey Repin wrote:
> Greetings, All!
> $ pwd
> $ ls -ld bin ca-profile
> lrwxrwxrwx 1 anrdaemon None 61 ноя 2 01:15 bin -> /home/anrdaemon/Documents/NIX/CA-tutorial/svn-working/scripts
> -rwx--x--x 1 anrdaemon None 588 дек 24 2017 ca-profile
> $ cat bin/../ca-profile
> cat: bin/../ca-profile: No such file or directory
> $ cat $( realpath -Le "bin/../ca-profile" )
> # @version $Id: ca-profile 82 2014-02-08 05:24:12Z anrdaemon $
> In simpler words, the bin directory is symlinked from elsewhere.
> realpath -Le resolves correctly, but all other filesystem functions fail.
I might be misunderstanding you, but are you saying that you think 'bin/..'
should resolve to the current working directory? This is not what Posix says.
See http://pubs.opengroup.org/onlinepubs/9699919799/, starting at "If a symbolic
link is encountered during pathname resolution...". The reason you got what you
wanted using 'realpath -L' is that the -L option specifically asks for that:
$ man realpath
resolve '..' components before symlinks
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple