shopt -s nocaseglobがUbuntuで動作しない

shopt -s nocaseglobがUbuntuで動作しない

Ubuntu 11.04 64ビットのbashでは、大文字と小文字を区別しないファイル名のワイルドカードは機能しません。指定されたシェルオプションは.bashrc次のとおりです。

shopt -s nocaseglob 
shopt -s nocasematch

shoptはまた、nocaseglobnocasematchのことを示します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

関連情報