名前が「SomeLongString」で始まるすべてのファイルをリストする必要があります。ただし、「SomeLongString」の場合は異なる場合があります。どのように?
私はzshを使用していますが、bashソリューションも歓迎します。
ZSH:
$ unsetopt CASE_GLOB
または、一般的に大文字と小文字を区別しないグロブを有効にしたくない場合は、さまざまな部分に対してのみ有効にすることができます。
$ print -l (#i)(somelongstring)*
これは、「somelongstring」で始まるすべてのファイルに一致します(小文字/大文字の任意の組み合わせ)。大文字と小文字を区別しないフラグは、括弧の間のすべてに適用され、複数回使用できます。詳細については、マニュアルzshexpn(1)
をお読みください。
更新 ほとんど忘れてしまいました。これを機能させるには、拡張エンドグロブを有効にする必要があります。
setopt extendedglob
バッシュ:
shopt -s nocaseglob
このリストをどれだけ深くしたいかによってfind
、この点に関して非常に多くのことを提供します:
find . -iname 'SomeLongString*' -maxdepth 1
これにより、現在のディレクトリ内のファイルのみが表示されます。ここで重要なのは、 の-iname
代わりにパラメータです-name
。
$ function i () {
> shopt -s nocaseglob; $*; shopt -u nocaseglob
> }
$ ls *jtweet*
ls: cannot access *jtweet*: No such file or directory
$ i ls *jtweet*
JTweet.pm JTweet.pm~ JTweet2.pm JTweet2.pm~