大文字と小文字を区別せずに、特定のパターンに一致するすべてのファイルを一覧表示したいと思います。
たとえば、次のコマンドを実行します。
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
に渡されるファイルであるため シェルによって。