Если я создаю символическую ссылку в терминале с помощью команды вроде
ln -s /path/to/some/directory symbolicLink
а затем перейдите по ссылке с
cd symbolicLink
терминал, кажется, думает, что cwd ~/symbolicLink/
даже несмотря на то, что он фактически показывает ~/path/to/some/directory/
(при условии, что ссылка была создана ~
, конечно). Это означает, что если я потом наберу текст, cd ..
я вернусь обратно ~
, потому что терминал «думает», что это родитель cwd.
Что бы мне нужно было изменить таким образом, cd ..
чтобы вместо этого взять меня ~/path/to/some/
, то есть настоящего родителя ~/path/to/some/directory/
?
cd -P
все еще решает проблему, с которой я столкнулся, но все еще полезно знать.Альтернативный способ - запустить:
источник
Я чувствую вашу боль - я считаю,
bash
что из-за такого поведения я в основном сломан для интерактивного использования.tcsh
гораздо более удобная оболочка для интерактивного использования. Оставьтеbash
для программирования (если вы настаиваете на написании сценариев оболочки, когда есть много лучших альтернатив среди многих языков сценариев).Чтобы изменить оболочки для любого пользователя, введите
chsh
в командной строке и следуйте инструкциям (опять же, я рекомендую/bin/tcsh
и отличную книгу О'Рейли « Использование csh и tcsh» , доступную практически без использования).источник
cd
поведением по умолчанию для символических ссылок. Я должен помнить, чтобы вставитьset -o physical
мою.bashrc
или.bash_profile
для каждой машины, которую я использую.