バトル ドワーフ クリスマスk8 カジノ【 find 】コマンド(応用編)――タイムスタンプでファイルを検索する仮想通貨カジノパチンコ舞台 刀剣 乱舞 公演 時間

バトル ドワーフ クリスマスk8 カジノ【 find 】コマンド(応用編)――タイムスタンプでファイルを検索する仮想通貨カジノパチンコ舞台 刀剣 乱舞 公演 時間

パラダイス シティ セガサミーk8 カジノ 「Linux基本コマンドTips」のインデックス

エムホールデム ぷよぷよLinux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「find」コマンドでのタイムスタンプによるファイル検索と、慣れないと少々扱いにくい「-prune」の使い方を解説します。

目次

findコマンドの概要 | 書式 | オプション一覧 | 検索式

実行例タイムスタンプでファイルを検索する除外するファイルやディレクトリを指定するfindコマンドとは?

 「find」は、場所を指定してファイルを検索するコマンドです。ファイル名だけではなく、ファイルの種類や更新日時など、細かい条件を指定して検索することができます。また、見つけたファイルに対して「アクション(コマンド)」を実行させることも可能です。

目次に戻る

findコマンドの書式

find [オプション] [検索パス] [検索式]

※[ ]は省略可能な引数を示しています

findコマンドの主なオプション

 findコマンドの主なオプションは次の通りです。

オプション意味-Pシンボリックリンクをたどらない(デフォルト)-L全てのシンボリックリンクをたどる-Hコマンドラインで指定したシンボリックリンクをたどる-D オプション診断用の情報(デバッグ情報)を出力する。オプションには次の文字列が入るhelp:デバッグ用オプションの説明を表示tree:検索式を構造化した情報stat:statやlstatを使ってファイルを調べたときのメッセージopt:検索式を最適化する際の情報rates:各処理の成功した回数と失敗した回数を表示-Oレベル最適化レベル。「-O1」はファイル名による判別を先に行う(デフォルト)。「-O2」「-O3」では別の判定を先に行うなどで処理を高速化する

目次に戻る

findコマンドの主な検索式

 findコマンドの主な検索式は次の通りです。

●ファイル名やファイルの種類

検索式意味-name パターンファイル名がパターンと一致するファイル(「-name “*.txt”」のような指定が可能)-iname パターン-nameと同じだが、大文字小文字を区別しない-lname パターンシンボリックリンクのリンク先ファイル名がパターンと一致するファイル-ilname パターン-lnameと同じだが、大文字小文字を区別しない-path パターンパスがパターンと一致するファイル-ipath パターン-pathと同じだが、大文字小文字を区別しない-regex パターンファイル名がパターンと一致するファイル、パターンに正規表現が指定可能-iregex パターン-regexと同じだが、大文字小文字を区別しない-type タイプファイルタイプ(通常ファイルだけを対象としたい場合は「f」、ディレクトリは「d」、シンボリックリンクは「l」)-xtype タイプ-typeと同じだが、「-H」や「-P」が指定されている場合はリンク先のファイルタイプで判定する-executable実行可能なファイルまたは検索可能なディレクトリ(-permと違いACLなども考慮する)-readable読み込み可能なファイルにマッチする(-permと違いACLなども考慮する)-writable書き込み可能なファイルにマッチする(-permと違いACLなども考慮する)-fstype タイプファイルが置かれているファイルシステムのタイプ(ufs、nfs、tmpなど)
●タイムスタンプ関係

検索式意味-mmin 分数指定した分数より前に更新されたファイル(「-mmin 3」で3分前、「-mmin +3」で3分以上前、「-mmin -3」で3分以内に更新、以下同)-mtime 日数指定した日数より前に更新されたファイル-newer ファイル指定したファイルの更新時刻以降に更新されたファイル-amin 分数指定した分数より前にアクセスされたファイル-atime 日数指定した日数より前にアクセスされたファイル-anewer ファイル指定したファイルのアクセス時刻以降にアクセスされたファイル-cmin 分数指定した分数より前にステータスが変更されたファイル-ctime 日数指定した日数より前にステータスが変更されたファイル-cnewer ファイル指定したファイルのステータス変更時刻にステータスが変更されたファイル-daystart-amin、-atime、-cmin、-ctime、-mmin、-mtimeで“今日”の始まりを今現在から24時間前ではなく、コマンド実行当日の0時にする
●その他の属性関係

検索式意味-uid 数値所有者のユーザーIDが指定した数値のファイル-user 名前所有者の名前が指定した名前のファイル-gid 数値所有グループID番号が指定した数値のファイル-group 名前所有グループ名が指定した名前のファイル-nouserユーザーIDに対応するユーザーがいないファイル-nogroupユーザーグループID番号に対応するグループがないファイル-perm モードパーミッションがモードと一致したファイル(「-モード」で指定したモードを全て許可しているファイル、「/モード」で指定したモードのいずれかを許可しているファイル)-empty空のファイルまたは空のディレクトリ-size サイズファイルサイズが指定したサイズに一致したファイル(「-size +3k」でサイズが3KBより大きなファイル)-links リンク数リンク数が指定したリンク数に一致したファイル-inum 番号iノード番号が番号に一致したファイル-samefile ファイル指定したファイルと同じiノード番号を参照しているファイル(「-L」オプションが有効な場合はシンボリックリンクも含まれる)
●アクション他

検索式意味-print見つけたファイルをフルパスで出力する(デフォルト)-ls見つけたファイルを「ls -dgils」形式で出力する-print0見つけたファイルのフルパスをNULL区切りで出力-printf フォーマット見つけたファイルをフォーマットに従った書式で出力する-fprint ファイル-printと同じ書式で指定したファイルに出力する-fls ファイル-lsと同じ書式で指定したファイルに出力する-delete見つけたファイルを消去する-exec コマンド ;見つけたファイルを引数にコマンドを実行する(オプションも指定可能。以下同)-execdir コマンド ;見つけたファイルのあるディレクトリでコマンドを実行する-ok コマンド ;見つけたファイルを引数に、確認メッセージを表示しながらコマンドを実行する(オプションも指定可能、以下同)-okdir コマンド ;見つけたファイルのあるディレクトリで、確認メッセージを表示しながらコマンドを実行する-an、-a条件をANDで結ぶ-or、-o条件をORで結ぶ-not条件を否定する-true常に真-false常に偽-quit直ちに終了する-depth 深さ検索するディレクトリの深さを指定-maxdepth 深さ検索するディレクトリの最大の深さ(「-maxdepth 0」でコマンドラインで指定したディレクトリのみ検索)-mindepth 深さ検索するディレクトリの最小の深さ(「-mindepth 1」でコマンドラインで指定したディレクトリより深いディレクトリを検索)-pruneディレクトリに降りない-mount他のファイルシステムにあるディレクトリを探索しない-noleaf「ディレクトリのハードリンク数から2を引いたものが、そのディレクトリに含まれるサブディレクトリの数である」という最適化を行わない

目次に戻る

タイムスタンプでファイルを検索する

 「-mmin」で分数、「-mtime」で日数を指定して検索します。例えば、ちょうど1週間前、つまり7日前は「-mtime 7」、1週間以内に更新したファイルであれば「-mtime -7」、1週間以上前ならば「-mtime +7」のように指定します。

 また、「-newer ファイル名」で、指定したファイルよりも新しいファイルを検索することも可能です。同様に、最終アクセス日を使う「-amin」「-atime」「-anewer」、ステータス更新日を使う「-cmin」「-ctime」「-cnewer」があります。

 以下の実行例では、ホームディレクトリ「Documents」下にあるファイルで、“1週間以内に更新されたファイル”をリストアップしています(画面1)。ディレクトリを対象外とするため、「-type f」も同時に指定しています。

コマンド実行例

find ~/Documents -type f -mtime -7

画面1画面1 「-mtime -7」を指定して、「Documents」下で1週間以内に更新されたファイルを検索しているところ

目次に戻る

除外するファイルやディレクトリを指定する

 上記の実行例では、ドキュメントディレクトリ(「~/Documents」)を検索していますが、例えば、これをホームディレクトリ下で検索した場合、「.cache」ディレクトリや「.local」ディレクトリなどにある作業ファイルやログファイルが含まれてしまうかもしれません。

 そこで、検索結果から“ドットファイル(隠しファイル)やドットディレクトリ(隠しディレクトリ)を除外”してみましょう(※)。「~以外」と指定するには、幾つか方法があります。今回は「-prune」を使用します。

※「ドットファイル」は、ドット(.)から始まるファイル名を持つファイルのことで、「隠しファイル」とも呼ばれます。

[参考]lsコマンド(ドットファイル/ディレクトリ編)――表示対象を指定する(本連載 第28回)

 -pruneは、主に「条件1 -prune -o 条件2 -print」のように指定します。「条件1に合致したら何も行わない(ディレクトリの場合その中に降りない)」「条件2に合致したら出力する」という動作になります。「-o」は“または(条件をORで結ぶ)”という意味です。

 ドットファイルは「-name “.*”」で指定できるので、先ほどの「-type f -mtime -7」と組み合わせて以下のように実行します(画面2)。

コマンド実行例

find ~ -name “.*” -prune -o -type f -mtime -7 -print

画面2画面2 「-name “.*” -prune」を指定することで、ドットファイルやドットディレクトリを除外して検索できる

 ちなみに、ドットディレクトリの中は表示したくないけど、ドットファイルは表示対象にしたい、という場合は「-name “.*” -type d」のように、「-type d」を追加して、「find ~ -name “.*” -type d -prune -o -type f -mtime -7 -print」とします。

目次に戻る

筆者紹介西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。

仮想通貨カジノパチンコau pay プリペイド カード 残高

コメントを残す