No encuentro ese comportamiento. Pero pude reproducirlo. Tal vez cambiaste la opción por accidente cdspell
. Consulte el Manual de referencia de Bash :
cdspell
Si se establece, se corregirán los errores menores en la ortografía de un componente de directorio en un comando de CD. Los errores verificados son caracteres transpuestos, un carácter faltante y un carácter demasiado. Si se encuentra una corrección, la ruta corregida se imprime y el comando continúa. Esta opción sólo es utilizado por shells interactivos.
Lo intenté y siempre corrige la ruta en el argumento dado cd
. Si hay múltiples posibilidades, como en su carpeta con ProjectA
, ProjectB
y ProjectC
, por defecto es la última en el orden del directorio. Puedes verificar eso por ls -U
. Mira el ejemplo:
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$
Para deshabilitar ese comportamiento, use:
shopt -u cdspell
spname
que devuelve el nombre de archivo correctamente escrito. Se inspira enthe code in "The UNIX * Programming Environment", Kernighan & Pike, Prentice-Hall 1984, pages 209 - 213.
shopt -s cdspell
configurado mi.bashrc
(hice muchas copias y pegué haciendo que una cruz osx / linux sea compatible.bashrc
y obviamente debería haber prestado más atención). En realidad me gusta, simplemente no pude hacer una búsqueda para encontrar por qué. ¡Gracias!