不完全なディレクトリ名が与えられた場合、cdが自動的に選択するのは標準的な動作ですか?

不完全なディレクトリ名が与えられた場合、cdが自動的に選択するのは標準的な動作ですか?

ProjectA、およびという3つのProjectBフォルダがありますProjectC。完了してtabを押すとcd選択されます。他の同様のケースでも、これが真実であることがわかりました。アルファベット順に最後の順序でデフォルト値が指定されます(ただし、最後に変更/追加されたものかもしれません)。cd ProjectEnterProjectC

これが予想されるデフォルトの動作ですか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

おすすめ記事