次: find Expressions, 前: Scope, 上: Introduction
与えられた基準にマッチするファイルのリストを作成し,その上でコマンドを
実行するために使用される主なプログラムは,find,locate,
そしてxargsです.追加のコマンドはupdatedbで,それは
locate が使用するデータベースを作成するために,システム管理者が
使用します.
findはディレクトリ階層内でファイルを検索し,見つかったファイルの
情報を出力します.以下のように実行します.
find [file...] [expression]
ここに典型的なfindの使用方法があります.この例では,
/usr/src をルートとしたディレクトリツリー内で,名前が`.c'で
終り,100Kバイト以上の大きさを持つ,すべてのファイルの名前を出力します.
find /usr/src -name '*.c' -size +100k -print
ワイルドカードは,シェルでの展開から守るため,確実に引用符で囲む必要が あることに注意してください.
locateは,特別なファイル名のデータベースで,パターンにマッチする
ファイル名を探します.システム管理者は,データベースを作成するために
updatedbを実行します.locateは以下のように実行します.
locate [option...] pattern...
この例は,デフォルトファイル名のデータベースで,名前が`Makefile'ま
たは`makefile'で終わる,すべてのファイルの名前を出力します.データ
ベースに保存されるファイル名は,システム管理者がupdatedbを実行し
た方法に依存します.
locate '*[Mm]akefile'
名前xargsは,EX-argsと発音され,それは“引数を統合する”という意
味があります.xargsは,標準入力から読み込む引数をかき集めてコマ
ンド行を構築し実行します.これらの引数は,findで生成されるファイ
ル名のリストとなることが最も多くなっています.xargsは,以下のよ
うに実行します.
xargs [option...] [command [initial-arguments]]
以下のコマンドは,ファイルfile-list内にリストアップされているファ イルを検索し,単語`typedef'を含むもののすべての行を出力します.
xargs grep typedef < file-list