[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rename directory and internal pwd command.

From: Bob Proulx
Subject: Re: rename directory and internal pwd command.
Date: Wed, 27 Mar 2013 11:20:35 -0600
User-agent: Mutt/1.5.21 (2010-09-15)

Masato Asou wrote:
> 1. Go to directory ~/src.
>     $ cd ~/src
> 2. Rename the directory to ~/src-old.
>     $ mv ~/src ~/src-old
> 3. Invoke pwd command. Then print /home/asou/src by pwd command.
>     $ pwd
>     /home/asou/src
> 4. Invoke /bin/pwd command. Then print /home/asou/src-old.
>     $ /bin/pwd
>     /home/asou/src-old
> Is this a bug of internal pwd command?

This is an intentional feature.  Bash tracks your present working
directory as changed by the cd command in the PWD variable.  The pwd
command prints that variable.  When you arrived at the location
$HOME/src the location was stored in the PWD variable.  Moving it out
from under your current process had no effect on the value of the PWD
variable.  Calling pwd prints the content of PWD variable.

In the pwd documentation this is described briefly along with the -L
and -P options for "logical" and "physical" behavior.  By default bash
follows the logical chain of directories when performing commands
which change the current directory.  The logical status is how you got
there.  The intention is to make symbolic links invisible to the user.
You could cd to a symlinked directory and then 'cd ..' would back you
one logical directory out and return you to where you were.  Using a
physical view the directory change through a symlink would place you
in the new directory and a 'cd ..' would take you up from there.

If you 'set -o physical' then bash will use the canonical physical
structure of the file system when performing commands which change

Personally I dislike the problems associated with the shell's logical
view and always have 'set -o physical' in my .bashrc file so that I
see the canonical physical file system directory structure.  The
logical view is a thin facade that is too easily broken.  But the
majority of users seem to prefer the logical view just the same.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]