私のシステムの1つで実行すると、ls [:lower:]*
小文字で始まるすべてのファイルが一覧表示されます。
別のケースではエラーを報告します。
ls: cannot access [:lower:]*: No such file or directory
作業ディレクトリには、小文字で始まるファイルがいくつかあります。
ls [[:lower:]]*
代わりに、両方のシステムで実行が実行されます。ls [:lower:]*
2番目のシステムでは、なぜ機能しないのか、文字クラスを使用する正しい方法は何であるかを知りたいです。
どちらもBashを実行しますが、他のシェルにも適用される答えが欲しいです。
答え1
最初の例は期待どおりには行われません。代わりに、次の文字で始まるすべてのファイル名を一覧表示します。
:
e
l
o
r
w
(この文字はlower
並べ替えられた文字です。)文字クラスを使用するには、すでに角かっこ内になければなりません。それから[:lower:]
2番目の例のようにを使用します。