Это может произойти, если текущий каталог переименован или перемещен, пока вы в нем находитесь.
Например:
$ mkdir /tmp/X
$ cd /tmp/X
$ mkdir Y Z
$ cd Y
$ touch a b c d e f
$ mv ../Y ../A
$ mv ../Z ../Y
$ echo $PWD
/tmp/X/Y
$ ls
a b c d e f
$ ls $PWD
$
Вы можете обнаружить разницу, посмотрев на номер inode каталога:
$ ls -ldi . $PWD
26871815 drwxr-xr-x 2 sweh sweh 4096 Jul 12 17:27 ./
26872035 drwxr-xr-x 2 sweh sweh 4096 Jul 12 17:27 /tmp/X/Y/
Вы также можете обнаружить это, потому что /bin/pwd
возвращает другое значение
$ /bin/pwd
/tmp/X/A
$ echo $PWD
/tmp/X/Y
В принципе, $PWD
- это просто место, где оболочка думает, что вы находитесь, а не обязательно то, где вы действительно находитесь :-)