トップページ >  unix >  find
初版2007/03/29: 最終更新日2008/01/22
  find
目次
find
ルートから検索
カレントディレクトリから検索
パーミッションから検索
ファイル更新時刻から検索
検索した複数ファイルに対して別コマンドを実行
find
findコマンドは、ファイルを検索するコマンドです。

ルートから検索
ファイルをファイルシステムのルートから検索する場合、

find / -name a.txt

というように実行します。上記はルートからa.txtというファイルを検索し、存在する場合標準出力します。
ルートから全てのディレクトリを検索するためかなり時間がかかります。

カレントディレクトリから検索
ファイルをカレントディレクトリから検索する場合、

find . -name a.txt

というように実行します。上記はカレントディレクトリからa.txtというファイルを検索し、存在する場合標準出力します。
カレントディレクトリ配下の全てのディレクトリを検索します。

パーミッションから検索
ファイルを指定したパーミッションから検索することも出来ます。
以下のように実行します。

find . -perm 644

上記は、パーミッションが644のファイルをカレントディレクトリから検索するコマンドです。
ドット(.)は./としても同じです。

また、指定したパーミッション以上のファイルを検索したい場合は以下のようにパーミッションに-を付加します。

find ./ -perm -644

この時、複数ディレクトリを指定することも出来ます。
複数ディレクトリを指定する場合は、スペース区切りでディレクトリを指定します。

find dir1 dir2 dir3 -perm -644

ファイル更新時刻から検索
ファイルの変更時間からファイルを検索することも出来ます。
-ctimeオプションを使用し、ファイルのiノードからファイルの検索を行います。
-ctime 1 とすると、24時間以内に変更されたファイルを検索します。
-ctime 2 とすると、48時間以内に変更されたファイルを検索します。
このように指定した数値に24を掛けた時間以内に変更されたファイルを検索します。
以下は、72時間以内に変更されたファイルを検索する例です。

find / -ctime 3

検索した複数ファイルに対して別コマンドを実行
findコマンドで検索したファイルに対してそのまま別コマンドを実行したい場合、-exec {} \;オプションを使用します。
以下はカレントディレクトリ配下のJavaファイルを全て探しだし、その全ファイルに対してgrepしている例です。

find . -name "*.java" -exec grep "検索対象文字" {} \;

Information
リンクについて
個人情報保護方針
Yahoo!ブックマークに登録

社長&社員ブログ
やる気はあるがお金がない㈱コンフレッジブログ

slot大好きな㈱コンフレッジ社員のブログ
広告

サイト内検索
当サイト内を検索できます↓


PV