Findコマンドのメモ

普段から常用しているコマンドなのですが、今更という感じです。

滅多に使用しないオプションを今回使用することになったので、記録しておこうかと思った次第です。
※今回、使ったのは日時オプションです

コマンドオプション 機能
-name [filename] 指定した文字でファイル、ディレクトリを検索
-user [username] 指定したユーザーが所有するファイル、ディレクトリを検索
-group [groupname] 指定したグループが所有するファイル、ディレクトリを検索
-type [type] ファイルの種類を指定して検索(b:ブロック型特殊ファイル c:キャラクタ型特殊ファイル d:ディレクトリ l:シンボリックリンク f:通常ファイル)
-atime (+/-)n 最後にアクセスしたのがn日前で検索(+をつけると~日以上、-をつけると~日以下)
-ctime (+/-)n 最後にステータスが変更されたのがn日前で検索(+をつけると~日以上、-をつけると~日以下)
-mtime (+/-)n 最後にデータが修正されたのがn日前で検索(+をつけると~日以上、-をつけると~日以下)
-mmin (+/-)n 最後にデータが修正されたのがn分前で検索(+をつけると~日以上、-をつけると~日以下)
-newer [filename] 指定したファイルよりも後に更新されているものを検索対象にする
-size n[c/k/b] nのサイズのファイルを検索(c:バイト、k:キロバイト、b:ブロック)
-ls 検索結果のファイル、ディレクトリの詳細を表示する(lsコマンドと同じ)
-print 検索結果を標準出力に出す(元々結果表示されるんで不要かも)
-fprint [filename] 検索結果をファイルに出力する(>でファイル出力できるので不要かも)
-exec [command] {}\; 検索結果を指定コマンドにの引数に設定して実行する

(例)カレントディレクトリ配下のファイルに「hogehoge」という文字が含まれているかどうか調べる

以下のコマンドで調べることができます。

1
$find . -type f -exec grep hogehoge {}\;

こちらでも同じ結果を得られます。

1
$find . -type f |xargs grep "hogehoge"

どちらでもいいと思いますが、自分はよく後者を利用しますね。