大文字と小文字を区別せずに、特定のパターンに一致するすべてのファイルを一覧表示したいと思います。
たとえば、次のコマンドを実行します。
ls *abc*
のように、大文字と小文字を区別せずに、ファイル名の一部に「abc」が含まれるすべてのファイルを表示したい
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
注
ケースのマニュアルページを検索しましたが、何も見つかりませんでした。
承認された回答:
これは実際にはlsではなく、シェルによって行われます。 。
bashで 、使用します:
shopt -s nocaseglob
そしてそして コマンドを実行します。
またはzsh :
unsetopt CASE_GLOB
またはyash:
set +o case-glob
そしてあなたのコマンド。
あなたはそれを.bashrcに入れたいかもしれません 、.zshrc または.yashrc それぞれ。
または、zshを使用します:
setopt extendedglob
ls -d -- (#i)*abc*
(つまり、ワイルドカードごとに大文字と小文字を区別しないグロビング)
ksh93の場合:
ls -d -- ~(i:*abc*)
グロビングが必要 lsではなく、異なる動作をする 、これらはすべてlsに渡されるファイルであるため シェルによって。