findコマンド(ファイル検索)の使い方

ファイル検索で利用するfindコマンドの使い方を解説します。ファイル名以外にも、色々な条件をつけて目的のファイルを探すことができます。

書式

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

利用例

基本

カレントディレクトリ内Kernel.phpというファイル を検索

$ find . -name "Kernel.php"
./app/Http/Kernel.php
./app/Console/Kernel.php

大文字小文字区別なし

カレントディレクトリ内controllerという文字を含む(大文字小文字区別せず)ファイル を検索

$ find . -iname "*controller*"

xargsとの応用

カレントディレクトリ内tmp拡張子ファイル を削除

$ find . -name "*.tmp" | xargs rm -f

更新日を条件に

カレントディレクトリ内3時間以内に更新されたファイル を検索

find . -mtime -3h

検索階層を指定

カレントディレクトリ内(下位第2階層まで)3日以内に更新されたファイル を検索

$ find . -maxdepth 2 -mtime -3

ディレクトリのみ

appディレクトリ内(下位階層は対象外)ディレクトリ のみ表示

$ find app -maxdepth 0 -type d

ファイルのみ

appディレクトリ内ファイル のみ表示

$ find app -type f

ファイル権限を条件に

カレントディレクトリ内777権限のファイル を検索

$ find . -perm 777

ファイル容量を条件に

カレントディレクトリ内10MB以上のファイル を検索

$ find . -size +10M

k M G など指定できます。