Ubuntu 11.04 64ビットのbashでは、大文字と小文字を区別しないファイル名のワイルドカードは機能しません。指定されたシェルオプションは.bashrc
次のとおりです。
shopt -s nocaseglob
shopt -s nocasematch
shoptはまた、nocaseglob
次nocasematch
のことを示しますon
。ただし、ディレクトリ変更またはファイルを開く場合、大文字と小文字を区別するモードでは機能しません。
大文字と小文字を区別しないファイル名のグロービングを有効にするために他のオプションが必要かどうかを確認したいと思います。
答え1
本当にワイルドカード拡張をしていますか?たとえば、というディレクトリがあるとしますFoobar
。それから
cd foobar
ワイルドカード文字がないため、ワイルドカード操作は実行されません。ファイル名を正確に指定した場合、これを行う方法を決定するのはアプリケーションに依存し、UNIXファイル名は大文字と小文字が区別されるため、アプリケーションに名前付きファイルを開くように指示すると、アプリケーションは名前付きFoobar
ファイルを開くではありませんfoobar
。
一方、
cd foo*
このオプションを設定すると、そのディレクトリが変更されますFoobar
(他の一致がないと仮定)。nocaseglob
完成時に大文字と小文字を区別しないように設定することもできます。に入れるかset completion-ignore-case on
、~/.inputrc
bind 'set completion-ignore-case on'
存在する~/.bashrc
。その後、を入力してcd foo
押すとTabシェルが完成しますFoobar
。