Используйте set -P
:
/home/user1/$ set -P
/home/user1/$ cd here
/tmp/subdir1/subdir2/here$ <--- path is now explicitly correct
(отменить с set +P
).
Или заставьте это поведение при вызове cd
:
/home/user1/$ cd -P here
/tmp/subdir1/subdir2/here$ <--- path is now explicitly correct
Или исправьте ваш рабочий каталог после того, как вы cd
нормально:
/home/user1/$ cd here
/home/user1/here$ cd `pwd -P`
/tmp/subdir1/subdir2/here$ <--- path is now explicitly correct
Или измените ваш cd
, поэтому, когда ему дается файл , он читает из него пункт назначения и действует так, как вы хотите:
cd(){ if [ -f "$1" ]; then command cd "`cat "$1"`"; else command cd "$@"; fi }
Сейчас:
/home/user1/$ echo "/tmp/subdir1/subdir2/here" > there
/home/user1/$ cd there
/tmp/subdir1/subdir2/here$ <--- path is now explicitly correct
Это доказательство концепции. Приспособьте это к своим потребностям. Некоторая логика отклонения двоичных или больших файлов (заданных по ошибке) может быть первой вменяемой настройкой.