与えられた基準にマッチするファイルのリストを作成し,その上でコマンドを
実行するために使用される主なプログラムは,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