IT技術サポート総合サイト
 
 言語:  VC++/MFC   PHP/Perl   VB/VBA   ASP/ASP.net   HTML/CSS   基本知識:  Windows   Linux   ネットワーク   MySQL   レンタルサーバ   SEO対策
キーワード: RSS2.0配信
 
 
コラム集:Linuxコマンド入門(ファイル管理篇)
←前コラム    目次    次コラム→    
 
find-ファイルの検索
分類:Linux     著者:ヒロシ     更新日付:2008/12/22
 
 
説明
特定のファイルやディレクトリを検索するには,findコマンドを利用します。

構文
find 検索の開始パス オプション 判別式 アクション

オプション
-depth ディレクトリ本体の前にディレクトリ内を先に評価する。 
-follow シンボリックリンクの参照先を検索する。 
-xdev 他のファイルシステムのディレクトリは探索しない。

判別式
-name パターン 指定したパターンに一致するファイルを検索する。 
-perm アクセス権 指定したアクセス権でファイルを検索する。 
-type ファイルタイプ 指定したファイルタイプでファイルを検索する。 
-size [+ or -]n 指定したサイズ(n)よりも大きい(+)または小さい(-)ファイルを検索する。 
-atime[+ or -]n 指定した時(n)よりも前にアクセスされた(+)または後にアクセスされた(-)ファイルを検索する。 
-mtime[+ or -]n 指定された時(n)よりも前に更新された(+)または後に更新された(-)ファイルを検索する。

アクション
-print 検索したファイルのファイル名のみ出力する。 
-fprint ファイル名 検索結果をファイルに出力する。同名のファイルがある場合は上書きする。 
-ls 検索したファイルの詳細情報を出力する。 
-exec コマンド 検索したファイル名を引数にしコマンドを実行する。引数の位置は{ }で指定する。 
-ok コマンド 検索したファイル名を引数にし実行するか確認した後コマンドを実行する。 

例:ファイル名はtest.txtのファイルを検索
$find / -name test.txt


例:ファイル名はtest01.txt,test02.txtのようなファイルを検索
$find / -name test??.txt


例:拡張子は.txtのファイルを検索
$find / -name *.txt


例:ファイル名がtest.txtというファイルを/home/taroディレクトリ以下から検索し、そのファイルを削除
$find /home/taro -name test.txt -exec rm {} \;


例:testという名前のディレクトリのみを検索
$find / -name test -type d
-typeの後ろに指定したdはディレクトリのみの意味です。このように、-typeに指定できるファイル種別はいかのように。
f  ファイル
d  ディレクトリ
l  リンク
c  キャラクタ・スペシャル・ファイル
b  ブロック・スペシャル・ファイル
s  ソケット

例:1Kバイト以上のファイルを検索
$find / -size +1k


例:10Kバイト以下のファイルを検索
$find / -size -10k


例:1Kバイト以上、10Kバイト以下のファイルを検索
$find / -size +1k -size -10k


例:カレントディレクトリからパーミッションが744のファイルを検索
$find . -perm 744


例:変更時間が30分前のファイルを検索
$find / -mmin 30


例:1日前から2日前までに変更されたファイルを検索
$find / -mtime +1 -mtime -2
上記2例のように、タイムスタンプから検索するときに使える判別式は:
-mtime 最後更新時間は現在より指定した日数以前のファイル。
-mmin 最後更新時間は現在より指定した分数以前のファイル。
-atime 最後アクセス時間は現在より指定した日数以前のファイル。
-amin 最後アクセス時間は現在より指定した分数以前のファイル。

例:カレントディレクトリ以下にある過去30日間に変更されたファイルで、かつ文字列.svnが含まれていないものを探し、さらにそれらのファイルをlsコマンドで一覧表示
$find . -type f -ctime -30 -not -regex ‘.*svn.*' -exec ls {} -al \;


例:自分のファイルのみを検索して削除
$ find /tmp -type f -user `whoami` -exec rm -f {} \;


例:拡張子が.phpのファイルをbackupディレクトリに移動す
$find ./ -name *.php -exec mv {} backup \;
 
 
←前コラム    目次    次コラム→