】コマンド(応用編)——タイムスタンプでファイルを検索する本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。前回に続き、今回も「find」コマンドを取り上げます。本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「find」コマンドでのタイムスタンプによるファイル検索と、慣れないと少々扱いにくい「-prune」の使い方を解説します。実行例タイムスタンプでファイルを検索する除外するファイルやディレクトリを指定するfindコマンドとは?「find」は、場所を指定してファイルを検索するコマンドです。ファイル名だけではなく、ファイルの種類や更新日時など、細かい条件を指定して検索することができます。見つけたファイルに対して「アクション(コマンド)」を実行させることも可能です。]は省略可能な引数を示していますfindコマンドの主なオプションfindコマンドの主なオプションは次の通りです。オプション診断用の情報(デバッグ情報)を出力する。オプションには次の文字列が入るhelp:デバッグ用オプションの説明を表示tree:検索式を構造化した情報stat:statやlstatを使ってファイルを調べたときのメッセージopt:検索式を最適化する際の情報rates:各処理の成功した回数と失敗した回数を表示-Oレベル最適化レベル。「-O1」はファイル名による判別を先に行う(デフォルト)。「-O2」「-O3」では別の判定を先に行うなどで処理を高速化する目次に戻るfindコマンドの主な検索式findコマンドの主な検索式は次の通りです。;見つけたファイルを引数にコマンドを実行する(オプションも指定可能。1」でコマンドラインで指定したディレクトリより深いディレクトリを検索)-pruneディレクトリに降りない-mount他のファイルシステムにあるディレクトリを探索しない-noleaf「ディレクトリのハードリンク数から2を引いたものが、そのディレクトリに含まれるサブディレクトリの数である」という最適化を行わない目次に戻るタイムスタンプでファイルを検索する「-mmin」で分数、「-mtime」で日数を指定して検索します。+7」のように指定します。ファイル名」で、指定したファイルよりも新しいファイルを検索することも可能です。同様に、最終アクセス日を使う「-amin」「-atime」「-anewer」、ステータス更新日を使う「-cmin」「-ctime」「-cnewer」があります。以下の実行例では、ホームディレクトリ「Documents」下にあるファイルで、“1週間以内に更新されたファイル”をリストアップしています(画面1)。f」も同時に指定しています。-7」を指定して、「Documents」下で1週間以内に更新されたファイルを検索しているところ目次に戻る除外するファイルやディレクトリを指定する上記の実行例では、ドキュメントディレクトリ(「~/Documents」)を検索していますが、例えば、これをホームディレクトリ下で検索した場合、「.cache」ディレクトリや「.local」ディレクトリなどにある作業ファイルやログファイルが含まれてしまうかもしれません。そこで、検索結果から“ドットファイル(隠しファイル)やドットディレクトリ(隠しディレクトリ)を除外”してみましょう(※)。「〜以外」と指定するには、幾つか方法があります。今回は「-prune」を使用します。※「ドットファイル」は、ドット(.)から始まるファイル名を持つファイルのことで、「隠しファイル」とも呼ばれます。-print」のように指定します。「条件1に合致したら何も行わない(ディレクトリの場合その中に降りない)」「条件2に合致したら出力する」という動作になります。「-o」は“または(条件をORで結ぶ)”という意味です。-7」と組み合わせて以下のように実行します(画面2)。-print」とします。めぐみ)PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。Office関連の教材作成およびeラーニング指導を担当。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。