我有三个名为ProjectA
、ProjectB
和的文件夹ProjectC
。当我tab
完成并按下cd
时,它会选择。我发现其他类似的案例也是如此;它默认为字典顺序中的最后一个(但这也可能是最近更改/添加的)。cd Project
EnterProjectC
这是预期的默认行为cd
,还是我在这里意外设置了某些内容?
我运行的是 OSX 10.10.3,带有 bash 4.3。
答案1
我没有遇到这种行为。但我能够重现它。也许您不小心更改了选项cdspell
。请参阅Bash 参考手册:
cd拼写
如果设置,将更正 cd 命令中目录组件的拼写小错误。检查的错误有字符调换、字符缺失和字符过多。如果发现更正,则打印更正的路径,然后继续执行命令。此选项仅由交互式 shell 使用。
我尝试过,它总是纠正给出的参数中的路径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