コンテンツにスキップ

検索

Linuxにおけるファイル検索を述べる.

  • find
  • mlocate

find

代表的なfindコマンド

書式: find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...]  [expression]
オプション 意味
-H コマンドライン上で指定された引き数を処理するとき以外、シンボリックリンクをたどらない。
-L シンボリックリンクをたどる。
-P シンボリックリンクをまったくたどらない。これがデフォルトの動作である。
-D [OPTION] デバッグモード
-O [0-3] 最適化レベル

  • グローバルオプション ... 指定位置関係せず,コマンドに影響する.
  • ファイルの検査 ... ファイルの中身やメタデータを問う.真偽を返す.
  • アクション ... 真偽次第でやることを示す.
  • 位置オプション ... 位置によって挙動が変わる.真を返す 位置オプションのうしろで変化される.例えば文字列整形のオプションの場合は,指定位置より後ろは整形された'てい'で評価される.
  • 演算子 ANDやORなど

グローバルオプション

一部抜粋する

引数 説明
-d,-depth ディレクトリそのものより中身を先に処理する
-help,--help help.
-[max|min]depth 探索する深さを指定.
-mount,-xdev ほかのファイルシステムのディレクトリを探索しない

検査

引数nは,+nでnより大きい,-nでnより小さい,nでnである,を示す.

[a|c|m]について
- aはaccess(アクセスについての最終日時),
- cはchange(要文献)(ステータス変更についての最終日時)を示す.
- mはmodify(最終内容更新日時)
を示す.(e.g. -amin, -cmin, -mmin)

一部抜粋する

引数 説明
-[a|c|m]amin n 最終日時がn分前である
-[a|c|]newer f ファイルfよりも最終日時が新しい.内容更新日時については,単に-newer
-[a|c|m]time n 現在時刻を基点として最終日時がn日前である(日付的な意味合いで計算する場合は-daystartをこの引数より前に設定する)`
-empty ファイルが空かつ,通常ファイルまたはディレクトリである
-execute accessSYSCALLを利用して,実行属性に一致する(実行可能なファイル,検索可能なディレクトリ)
-readable 読めるファイル
-perm [mode] ファイルの許可属性に関する条件(詳細はManualを)
-fstype type そのファイルが設置されているファイルシステムがtypeである
-gid n ファイルのGIDがnである
-group [name|id] ファイルの属するグループがname名か,gidであるか
-name [pattern] ファイルのbasenameがパターンに一致するか.パターンなので,'で囲む,
-regex [pattern] ファイル名が正規表現一致か.(-regextypeで正規表現解釈を変更できる)
-sanefile name ファイルがnameと同じinode番号を示す.(-Lが有効な場合,シンボリックリンクも真を示す)
-type [b|c|d|p|f|l|s|D] ファイルのタイプを示す.DはSolarisの「ドア」タイプである.
-size n[b|c|w|k|M|G] ファイルサイズ.c~Gのいずれかを指定しない場合は,b(ブロックサイズ)が適用される.バイトサイズはcである.wはワードサイズ,1ワード2バイトとする.なお,k|M|Gは,それぞれキビ・メビ・ギビである.キロやギガではない.
-no[user|group] ファイルのUID/GIDがシステムに存在しない場合

アクション

一部抜粋する

  • -delete 削除
  • -exec [command] ; ... コマンドを実行.対象となるファイルは{}で示される.ただし,execの呼出回数の点から| xargsを使うと良い場面が多い.
  • -ok [command] ; ... execオプションを実行する前に同意を示す.
  • -fls [file]-fprint file ... 出力をfileに書き出す.
    -ls ... ls -dilsの形式で出力する.
  • -printf [format] ... printf書式

演算子

  • (),!,-not
  • 式1 式2, 式1 -a 式2,式1 -and 式2 ... and
  • 式1 -o 式2, 式1 -or 式2 ... or
  • 式1 , 式2 ... list

mlocate

sudo apt install mlocate
  • updatedb ... db更新
  • locate ... 検索

最終更新日: 2021年6月27日