Недавно я обнаружил, что не могу использовать cd -
чтобы иногда возвращаться в последний каталог. Выдает ошибку -bash: cd: ~/whatever_dir: No such file or directory
. При ближайшем рассмотрении видно, что ошибка возникает, только если последний каталог содержит тильду. Кажется, тильда не может быть расширена. «cd ~», однако, может успешно перейти в мой домашний каталог. В чем проблема? Я знаю, что тильда не будет расширяться внутри кавычек, но последний сохраненный каталог не в кавычках при выполнении cd -
, верно? Плюс cd -
у меня сработало ранее.
3
2 ответа
1
Вероятный источник проблемы, выполненный как часть PROMPT_COMMAND
в вашей конфигурации bash:
PWD="${PWD/$HOME/~}"
Прекратите переназначать PWD
на другое значение. Это просто сломает вещи.
0
У вас есть серьезная ошибка в вашей оболочке, о которой вы должны сообщить. Вы сказали, что в такой ситуации $OLDPWD
показывает ~/whatever_dir
what_dir . Не должно.
Вот что у меня здесь:
fge@erwin ~/whatever_dir $ pwd
/home/fge/whatever_dir
fge@erwin ~/whatever_dir $ cd -
/home/fge
fge@erwin ~ $ echo $OLDPWD
/home/fge/whatever_dir
~
это просто удобный ярлык, используемый оболочками для обозначения вашего домашнего каталога. Мой /home/fge
. В любом случае, $OLDPWD
должен показывать абсолютный путь, а НЕ путь с ~
в нем, кроме случаев, когда у вас есть каталог с именем ~
.