[2-57]なる文字セットである2、3、4、5そして7、そこのzshや他のすべてのワイルドカードや正規表現構文インチ globパターン*[2-57]は、最後の文字がこれらの5桁のいずれかであるすべてのファイル名と一致します。
[m,n] glob修飾子の構文を誤って覚えていると思います。グロブ修飾子は、常にパターンの最後に括弧で囲み、範囲区切り記号はコンマです。パターン*([2,57])は、2番目、3番目、…、57番目の一致に展開されます。デフォルトの展開順序は辞書式です(numeric_glob_sortオプションが設定されている場合、数値を数値順に並べ替える特別な魔法があります)。oまたはOglob修飾子で制御できます(たとえば*(om[2,57])、最新の1つのファイルを除く最新の57のファイルに一致させるため)。
for x in /foo/bar/*([2,57]); do print $x; done
あなたが求めたものではなく、将来の読者に関連し、おそらく有用です:ファイルが存在するかどうかにかかわらずファイル2から57を列挙したい場合は、範囲括弧表現を使用できます。この機能はbashとkshにもあります。
echo hello{2..57}
また、名前に2〜57の数字が含まれるファイルと一致させたい場合は、パターンを使用できます<2-57>。これはzshに固有です。
$ ls
file1 file2 file3 file57 file58
$ echo file<2-57>
file2 file3 file57
のようなパターン*<2-57>は、*数字と一致する可能性があるため、期待どおりに動作しない可能性が高いことに注意してください。例えば、file58一致する*<2-57>と、file5一致する*部分と8一致する<2-57>部分。このパターン*[^0-9]<2-57>はこの問題を回避します。