find ハンドブック

編集

このハンドブックは、POSIX準拠のfindコマンドの基本的な使い方とオプションについて解説します。

基本構文

編集

findコマンドの一般的な構文は以下の通りです:

find パス ... [オプション]
  • パス: 検索を開始するディレクトリを指定します(省略不可)。
  • オプション: 検索条件やアクションを指定します。

主なオプション

編集

以下はPOSIXに準拠したfindのオプションです。

指定したパターンと一致するファイルやディレクトリを検索します。

find /path/to/search -name "パターン"
/homeディレクトリ以下でexample.txtを検索。
find /home -name "example.txt"

ファイルの種類を指定して検索します。

find /path/to/search -type [d|f]
  • d: ディレクトリ
  • f: 通常のファイル
/tmpディレクトリ以下で通常のファイルのみを検索。
find /tmp -type f

-print

編集

検索結果を標準出力に表示します(デフォルト動作として明示的に記述可能)。

find /path/to/search -print

検索結果に基づいてコマンドを実行します。

find /path/to/search -type f -name "*.txt" -exec rm {} \;
  • >{}: 検索結果のファイル名に置換されます。
  • >\;::
    -exec</code>の終了を示します。
    
    === -user ===
    指定したユーザー所有のファイルを検索します。
    :<syntaxhighlight lang=shell-session>
    find /path/to/search -user ユーザー名
    

-group

編集

指定したグループ所有のファイルを検索します。

find /path/to/search -group グループ名

-mtime

編集

指定した日数以内に変更されたファイルを検索します。

find /path/to/search -mtime 日数
  • 正の値: 指定日数より古いファイル。
  • 負の値: 指定日数以内のファイル。

例: 過去3日以内に変更されたファイル。

find /path/to/search -mtime -3

ファイルサイズを指定して検索します。

find /path/to/search -size [+|-]サイズ[単位]
  • 単位:
    c: バイト
    k: キロバイト
    M: メガバイト

例: 100バイト以上のファイルを検索。

find /path/to/search -size +100c

組み合わせ

編集

findでは複数の条件を組み合わせて検索できます。

AND条件

編集

すべての条件を満たすファイルを検索します(デフォルト)。

find /path/to/search -type f -name "*.txt" -size +1k

OR条件

編集

どれかの条件を満たすファイルを検索します。

find /path/to/search \( -name "file1.txt" -o -name "file2.txt" \)

NOT条件

編集

条件に一致しないファイルを検索します。

find /path/to/search ! -name "*.bak"

関連コマンド

編集
  • xargs:findと連携してコマンドを効率的に実行。
  • >ls: 検索結果を整理して表示。