====== find ======
===== 機能 =====
条件を指定することによって、ファイルやディレクトリを検索する。演算子で結ぶことによって複数の判別式を使用できる。
===== 構文 =====
find [検索するディレクトリ] (option)
===== オプション =====
==== 条件 ====
|-name [file name]|指定した文字列を検索 |
|-user [user name]|指定したユーザー名のファイルを検索 |
|-atime (+/-)n|最後にアクセスしたのがn日前のファイルを検索 (+n:n日以上、-n:n日以下) |
|-mtime (+/-)n|最後にデータが修正されたのがn日前のファイルを検索(+n:n日以上、-n:n日以下) |
|-mmin (+/-)n|最後にデータが修正されたのがn分前のファイルを検索(+n:n分以上、-n:n分以下) |
|-size n[c/k/b]|nのサイズのファイルを検索(c:バイト、k:キロバイト、b:ブロック-1ブロック=512バイト) |
|-type [type]|typeに指定したものだけ検索|
=== -type の[type] ===
|b|ブロックデバイス|
|c|キャラクタデバイス|
|d|ディレクトリ|
|f|ファイル|
|l|シンボリックリンク|
|p|名前付きパイプ|
|s|ソケット (UNIX ドメインソケット)|
|D|Door (Solaris のみ) |
==== 処理 ====
|-print|検索結果の標準出力(省略可) |
|-fprint [filename]|検索結果を指定したファイルに書き出す |
|-exec [command] {} \;|検索結果をコマンドに引き渡して実行 |
===== コマンド例 =====
■./以下から30日以上前に更新されたpng形式のファイルを検索する
$ find ./ -name "*.png" -atime +30
■./以下でユーザーmatuiのファイルを検索し削除する。
$ find ./ -user matsui -exec rm -rf {} \;
■./以下でファイルサイズが10M以上のものを表示。
$ find ./ -size +10000k -exec ls -ahl {} \;
-rwxr--r-- 1 matsui matsui 15M 7 22 14:24 ./TEST/EvtRpt92JP.zip
-rwxr--r-- 1 matsui matsui 3.3G 7 3 10:09 ./TEST/Fedora-9-i386-DVD.iso
-rwxr--r-- 1 matsui matsui 15M 5 30 2008 ./TEST/FreePrimo32Setup_JP.exe
■ /var/log以下で1M以上のファイルを検索
$ find /var/log/ -size +1000k -exec ls -ahl {} \;
{{tag>Unixコマンド ファイル操作}}