findコマンド

findコマンドの使い方いろいろ

/etc配下のliloというファイルを検索
# find /etc lilo -print

パーミッションが777のファイルを出力
# find / -perm -777 -exec ls -ald {} \;

UIDが101のファイルを出力
# find /var -user 101 -print

UIDが101のファイルをadminに変更
# find /opt -user 101 -exec chown admin {} \;

sbitのあるファイルを出力
# find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -ald {} \;

3日以内に更新されたファイルの検索
# find /etc -mtime -3 -print

更新日付が2500日以上前のファイルの検索
# find /etc -mtime +2500 -print

100日前から3日前までに更新されたファイルの検索
# find /etc -mtime +3 -mtime -100 -print

/etcディレクトリ下に存在する1KB以下のファイルの検索
# find /etc -size -1k -print

/etcディレクトリ下に存在する1KB以上3KB以下のファイルの検索
# find /etc -size +1k -size -3k print

1KB以上のサイズで1000日以上前に更新したファイルの検索
# find /etc -size +1k -mtime +1000 -print

1時間以内に参照されたファイルの検索
# find /var -atime 1

/etc配下のファイルに対してliloという文字列を検索
# find /etc -type f | xargs grep lilo

エラーを表示させない
# find / -name traceroute -print 2> /dev/null

エラーのみ表示される
# find / -name traceroute -print 1> /dev/null

すべてを表示させない
# find / -name traceroute -print &> /dev/null

ワイルドカードの使用
# find / -name '*route' -print 2>/dev/null

routeを含むファイルの検索
# find /etc -exec grep "route" {} \; -print
-exec XXX:XXXを実行する  
{}       :findで検索されたものが代入
\;       :grepコマンドの終了

routeを含むファイルの検索
# find /etc -type f -exec grep "route" {} \;
-type:f ファイル
-type:d ディレクトリ
-type:l シンボリックリンク 

ファイルの種別にスクリプトファイルを指定した検索
# find /sbin -exec file {} \; | grep script