シェルワイルドカード一致ファイルがありません。

シェルワイルドカード一致ファイルがありません。

私はしばしばシェルファイル名のグロービングを使用して、allなどの操作/dev/sdaなどの操作を実行します。ただし、これはディスクに存在するパターンと一致するファイルに依存します。今日はそれぞれ背中で実行したかったのですが、ディスクにパターンと一致するファイル名がないので動作しませんでした。/dev/sdb/dev/sdc/dev/sd[a-f]gitkmaster@{1}master@{2}gitk master@{[1-5]}

実際のディスクファイルに関係なく、シェルにグロービングを実行させるにはどうすればよいですか?

答え1

一致するファイルがないと、シェルのグロービングはできません。あなたはする必要があります支柱の拡張:

gitk master@{{1..5}}

または:

gitk master@{{1,2,3,4,5}}

フォームは後で、後で、後で{x..y}必要です。zsh 2.6-beta4bash 3.0ksh93r

{x,y}最初はcshBourneにShell Firstにコピーされましたksh

答え2

少なくともbashでは範囲を使用できます。

$ echo gitk master@{{1..5}}
gitk master@{1} master@{2} master@{3} master@{4} master@{5}

明らかに、echoは何が起こっているのかを示すために上記で使用されました。

文字にも機能します。

$ echo /dev/sd{x..z}
/dev/sdx /dev/sdy /dev/sdz

注:これはグローバル一致と正規表現一致です。これは2つの異なるものです。グローバルマッチングのためのシェル。だからシェル正規表現ワイルドカードあまりありません。

関連情報