Сегодня я нашел кое-что действительно интересное (по крайней мере для меня) на одном из наших тестовых серверов:
Я могу перейти в существующий каталог из моего фактического рабочего каталога, используя относительный путь, но этот же каталог не отображается при использовании ls -a
.
Вот сессия оболочки (как root
):
$ pwd
/you/are/here
$ ls -a
. .. <-- Note: "somedir" is not shown to root
$ echo $CDPATH
$ cd somedir <-- But still: "cd" works fine
$ pwd
/you/are/here/somedir
$ cd ..
$ pwd
/you/are/here
$ ls -a
. ..
Может кто-нибудь сказать мне, как это вообще возможно? Я проверил: ls
это из /bin/ls
, а pwd
это /bin/pwd
, оба из их оригинального пакета (я имею в виду: не взломан).
/you
- смонтированный EMC-диск (ext3). И существует somedir
как я могу перечислить его содержимое (есть несколько подкаталогов, файлов). Его имя не начинается с точки.
Еще один сеанс оболочки, с дополнительной информацией о командах и выводе ls
:
root@U-TEST@AT$/bin/ls -ali
total 4
16515074 drwxrwxr-x 2 U8000966 test 2048 Sep 1 07:39 .
16515073 drwxrwxr-x 3 U8000966 test 2048 Apr 27 2006 ..
root@U-TEST@AT$ls -ali somewhere | head -5
total 182
16515075 drwxrwxr-x 43 U8000966 test 2048 Sep 1 07:39 .
16515074 drwxrwxr-x 2 U8000966 test 2048 Sep 1 07:39 ..
16519169 drwxrwxrwx 4 U8000966 test 2048 Jul 25 2007 AAA
16515124 drwxrwxr-x 3 U8000966 test 2048 May 12 2006 BBB
root@U-TEST@AT$type ls
ls is aliased to `/bin/ls $LS_OPTIONS'
root@U-TEST@AT$type pwd
pwd is a shell builtin
root@U-TEST@AT$/bin/pwd
/you/are/here
root@U-TEST@AT$cd somewhere
root@U-TEST@AT$/bin/pwd
/you/are/here/somewhere
root@U-TEST@AT$type cd
cd is a shell builtin
Обратите внимание на итоговые 4 после первого ls -ali
. (Я не знаю, если это актуально ...)
Еще несколько тестов:
root@UR-TEST@AT$ls
. ..
root@U-TEST@AT$touch somewhere/testfile
root@U-TEST@AT$ls
. ..
root@U-TEST@AT$cp somewhere/testfile ./
root@U-TEST@AT$ls
. .. testfile
root@U-TEST@AT$du .
2 .
root@URBIS-TEST@AT$
И EMC: http://www.emc.com/products/family/disk-library-family.htm , но в данном случае они являются только поставщиками дисков, с жесткими дисками, отформатированными как ext3.
ОБНОВИТЬ
(Извините, но вчера мне пришлось уйти)
Я сделал проверить echo *
и его . ..
Вот LS_OPTIONS
: -a -N --color=tty -T 0
.
Я проверил автомонтирование, упомянутое Жилем, но когда я перешел somewhere
и выдал команду mount|grep somewhere
там ничего не вышло.
Вот вывод lsattr
и strace
как было предложено: http://gist.github.com/566947