Не могу объяснить, почему CD работает, а его абсолютный путь не работает, на Centos 7 - PullRequest
0 голосов
/ 21 января 2020

Я нахожусь на CentOS Linux выпуск 7.7.1908 (Core). Из cli, набрав:

~ which cd

дает

~ /bin/cd

Возьмите тот случай, когда я нахожусь на / home . Если я наберу

~ cd ..

I go обратно в папку root / .

Но если я сделаю

~ /bin/cd ..

, то это ничего не делает. Я все еще нахожусь в / home .

Что это может быть?

1 Ответ

0 голосов
/ 21 января 2020

cd является внутренней оболочкой, т.е. оболочка обрабатывает изменение самой директории. действие по умолчанию внутренней версии оболочки cd - логически сказать, где вы находитесь. Другими словами, если вы cd ссылаетесь на символическую c, cd сообщит название символической c ссылки, а не фактический каталог. Вы можете изменить это, введя cd -P.

/usr/bin/cd - это двоичный файл, который меняет ваш рабочий каталог. Его поведение по умолчанию - показать вам реальный каталог, в котором вы находитесь.

Единственная реальная цель /usr/bin/cd - это иметь возможность exec команду, чтобы получить код выхода, чтобы выяснить, является ли он можно перейти в каталог.

...