Я не сталкиваюсь с таким поведением. Но я смог воспроизвести это. Может быть, вы случайно изменили вариант cdspell
. См. Справочное руководство Bash :
cdspell
Если установлено, незначительные ошибки в написании компонента каталога в команде cd будут исправлены. Проверяются ошибки: транспонированные символы, отсутствующий символ и слишком много символов. Если исправление найдено, исправленный путь печатается, и команда продолжается. Эта опция используется только интерактивными оболочками.
Я попробовал это, и он всегда исправляет путь в аргументе cd
. Если есть несколько возможностей, например, в вашей папке с ProjectA
, ProjectB
и ProjectC
, по умолчанию используется та, которая является последней в порядке каталогов. Вы можете проверить это по ls -U
. Смотрите пример:
user@host:~$ ls -Ul
total 0
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectA
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectB
drwxr-xr-x 2 root root 40 May 26 08:11 ProjectC
user@host:~$ cd Project<tab><tab>
ProjectA/ ProjectB/ ProjectC/
user@host:~$ cd Project
ProjectC
user@host:~/ProjectC$
Чтобы отключить это поведение, используйте:
shopt -u cdspell