QShell
の find
コマンドを使うと、IFS のディレクトリー階層を辿って、条件を満たすファイルを
検索することが出来る。
find パス 式
「パス」には、検索を開始するディレクトリーを指定する。
「式」には、検索条件及び、抽出したファイルにどのような処理を行うか指定する。
以下に、find
コマンドの使用例を挙げる。
1. /tmp 以下のサブ・ディレクトリーに存在するすべてのファイルを列挙する。
find /tmp -type f
-type f
は、「ファイル」のみを検索する条件式である。
2. 最終更新日が 1 日以内のファイルを列挙する。
find /tmp -mtime -1
-mtime -1
は、最終更新日が 1 日以内を意味する。
3. 拡張子が .htm のファイルを列挙する。
find /tmp -name '*.htm'
さて、前回 「12. ストリーム・ファイル内の文字列を検索するには」で予告したとおり、
サブ・ディレクトリー内のすべてのファイルから文字列を検索するには、以下のような
コマンドを実行すれば良い。
4. サブ・ディレクトリー内のすべてのファイルから文字列を検索する。
find /tmp -type f -exec grep -l chkInputValidity \{\} \;
find
コマンドには、これ以外にも多数のオプションが存在する。興味のある方は、
IBM Knowledge Center の以下のページを参照してもらいたい。