3

Недавно я обнаружил, что не могу использовать cd - чтобы иногда возвращаться в последний каталог. Выдает ошибку -bash: cd: ~/whatever_dir: No such file or directory . При ближайшем рассмотрении видно, что ошибка возникает, только если последний каталог содержит тильду. Кажется, тильда не может быть расширена. «cd ~», однако, может успешно перейти в мой домашний каталог. В чем проблема? Я знаю, что тильда не будет расширяться внутри кавычек, но последний сохраненный каталог не в кавычках при выполнении cd - , верно? Плюс cd - у меня сработало ранее.

2 ответа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 должен показывать абсолютный путь, а НЕ путь с ~ в нем, кроме случаев, когда у вас есть каталог с именем ~ .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .