
ProjectA
、およびという3つのProjectB
フォルダがありますProjectC
。完了してtab
を押すとcd
選択されます。他の同様のケースでも、これが真実であることがわかりました。アルファベット順に最後の順序でデフォルト値が指定されます(ただし、最後に変更/追加されたものかもしれません)。cd Project
EnterProjectC
これが予想されるデフォルトの動作ですかcd
、それとも誤ってここに何かを設定したのですか?
私はbash 4.3でOSX 10.10.3を実行しています。
答え1
私はこの動作を経験していませんでした。ところで再現できました。誤ってオプションを変更した可能性がありますcdspell
。よりバッシュリファレンスマニュアル:
CDスペル
設定されている場合は、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