Subject: Re: bug#6194: bug: pwd

From: eran shaham <[email-masked]>
Date: Fri, 14 May 2010 23:47:52 +0300

Thanks.
I suggest you add into
$man pwd
or
$info pwd

the remark that was on
$ help pwd
pwd: pwd [-LP]
    Print the current working directory.  With the -P option, pwd prints
    the physical directory, without any symbolic links; the -L option
    makes pwd follow symbolic links.

It would save other people bothering you on that subject :-)

Thanks,
Eran

On Fri, May 14, 2010 at 22:57, Bob Proulx <[email-masked]> wrote:

> retitle 6194 pwd tracks logical paths through symlinks
> tags 6194 + wontfix
> thanks
>
> eran shaham wrote:
> > `pwd' prints the fully resolved name of the current directory.  That
> > is, all components of the printed name will be actual directory
> > names--*none will be symbolic links*.
>
> Thank you for the report.  But you are confusing the coreutils
> standalone 'pwd' with your shell's internal builtin 'pwd'.  The
> coreutils pwd command does not behave as you describe.  You are
> invoking the shell's builtin pwd.
>
>  $ type pwd
>  pwd is a shell builtin
>
> But regardless of that what you are seeing is the shell's logical path
> record keeping in action.  This is the behavior that most people
> prefer and so it is the default.  I can tell taht you however are like
> me and do not prefer it.  In which case if you are using the bash
> shell you can change your shell behavior to use only physical paths.
>
>  set -o physical
>
> And now the shell will not track logical paths.  Putting that in your
> $HOME/.bashrc file will give you the behavior you desire.
>
> > When you try the following:
> > mkdir dirA dirB
> > cd dirA
> > ln -s ../dirB/ lnkB
> > cd lnkB
> > pwd
>
> The pwd above is the shell's builtin pwd.  It is not the coreutils
> pwd.  The shell tracks the logical path in the PWD environment
> variable and reports it as if it were a real path.  See the bash pwd
> documentation for details.
>
>  help pwd
>
> Look at the -L and -P options.
>
> > where lnkB is obviously a symbolic link and not an actual directory name.
>
> That is intentional behavior.
>
> Bob
>