Answers:
我没有遇到这种行为。但是我能够复制它。也许您不小心更改了该选项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
spname
,它确实返回正确拼写的文件名。它的灵感来自the code in "The UNIX * Programming Environment", Kernighan & Pike, Prentice-Hall 1984, pages 209 - 213.
shopt -s cdspell
设置好了.bashrc
(我做了很多复制粘贴操作,使osx / linux相互兼容.bashrc
,显然应该引起更多关注)。我实际上很喜欢,只是无法找到原因。谢谢!