Findハンドブック
find ハンドブック
編集このハンドブックは、POSIX準拠のfind
コマンドの基本的な使い方とオプションについて解説します。
基本構文
編集find
コマンドの一般的な構文は以下の通りです:
find パス ... [オプション]
- パス: 検索を開始するディレクトリを指定します(省略不可)。
- オプション: 検索条件やアクションを指定します。
主なオプション
編集以下はPOSIXに準拠したfind
のオプションです。
-name
編集指定したパターンと一致するファイルやディレクトリを検索します。
find /path/to/search -name "パターン"
- 例
/home
ディレクトリ以下でexample.txt
を検索。find /home -name "example.txt"
-type
編集ファイルの種類を指定して検索します。
find /path/to/search -type [d|f]
- d: ディレクトリ
- f: 通常のファイル
- 例
/tmp
ディレクトリ以下で通常のファイルのみを検索。find /tmp -type f
検索結果を標準出力に表示します(デフォルト動作として明示的に記述可能)。
find /path/to/search -print
-exec
編集検索結果に基づいてコマンドを実行します。
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
-size
編集ファイルサイズを指定して検索します。
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
: 検索結果を整理して表示。