ワイルドカードでファイルの種類を指定
2007/03/22
特定のディレクトリ以下のファイルを全部読み込む
**が再帰的に展開される機能は、zshだけじゃなかったかな?と思って、bashで試したら、bashでも機能した。
zshのワイルドカードでは、更に*(/) とか *(.) *(*) とかも指定可能です。
$ echo tmp/**/*(.)
これで通常ファイルのみを展開するとか。
$ echo tmp/**/*(*)
これで実行可能ファイルのみを展開するとか。
覚えきれない程あるみたいです。
使える指定には以下のようなのがあります
* /:ディレクトリ
* @:シムリンク
* .:通常ファイル
* ^:否定
追補:以下の指定もできるらしいですが、私は使ったことがありません。
* *:ディレクトリでない実行権のあるファイル
* r:読み込み権のあるファイル
* w:書き込み権のあるファイル
* x:実行権のあるファイル
* R:他人に読み込み権のあるファイル
* W:他人に書き込み権のあるファイル
* X:他人に実行権のあるファイル
* f値:値で指定したアクセス権のファイル
* U:自分が所有するファイル
* G:自分が所属するグループのファイル
* u値:値のユーザが所有するファイル
* g値:値のグループが所有するファイル
* s:setuidされたファイル
* -:次の指定にシンボリックリンクを含む
* =:ソケット
* p:名前付きパイプ(FIFO)
* ^:それ以降の指定の否定
http://q-eng.imat.eng.osaka-cu.ac.jp/~ippei/unix/?UNIX%BA%A3%C6%FC%A4%CE%B5%BB%2Fzsh#l9
全部使いこなしたら、find使う頻度が減るな。(無理だけど)