[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rename directory and internal pwd command.
From: |
Masato Asou |
Subject: |
Re: rename directory and internal pwd command. |
Date: |
Thu, 28 Mar 2013 12:32:10 +0900 (JST) |
From: Bob Proulx <bob@proulx.com>
Date: Wed, 27 Mar 2013 11:20:35 -0600
> 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.
Thank you for your careful comment.
> 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
> directories.
Sorry, I forgot to confirm the man bash.
> 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.
I also agree with your opinion.
> 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.
Thanks.
--
ASOU Masato