Linuxコマンドの紹介です。ここで紹介しているコマンドを
一つでも多くマスターすると、Linuxを使うのがとても楽になります。
これで、あなたもLinuxサーバー管理者への一歩を踏み出せます。




No.025
  ファイルを検索する  


■-- 文法 --■

find (パス) 検索条件

            例)
                find/home/usr/pakira-namepakira.dat
                  「/home/usr/pakira」ディレクトリのなかから「pakira.dat」ファイルを検索する
                  ※▲はスペースを表してます。





オプション

-atime 指定した時間とファイルが最後にアクセスされた時間を比較する

-mtime 指定した時間とファイルの最終更新日を比較する

-name ファイル名 ファイル名で検索する

-user ユーザー名 ファイルの所有者と指定したユーザ名を比較する

-print 条件に合致したファイル名を表示する

-type ファイルタイプ 指定したファイルタイプと比較する

実行例






■「messages」ファイルを検索する


 $ su -    ←root権限になります
 Password:
 # find / -name messages  ←「find」コマンドを実行します
 /var/log/messages    ←「/var/log/」に「messages」ファイルがあります


■検索するファイルにもよりますが、「messages」などのシステムログファイル
 などを検索する場合には、root権限になって検索することをおすすめします。

 root権限じゃない状態で「find / -name messages」を実行すると

 ----------------------------------------------
  find: /proc/1/fd: Permission denied
  find: /proc/2/fd: Permission denied
  find: /proc/3/fd: Permission denied
  find: /proc/4/fd: Permission denied
 ----------------------------------------------

 上のようなエラーがたくさん表示がされます。
 検索自体は中止されませんが、画面が見づらくなりますので注意してください。
 
 ちなみに上のエラーは「このディレクトリにアクセスできる権限がありませんよ」
 という意味です。


■この「find」というコマンドは、いままで紹介してきたコマンド違い
 ちょっと複雑ですので、もう少し詳しく紹介しますね♪

 パスというのがありますが、これは検索する範囲を指定するものです。
 上の例では、「/」を指定しています。これはすべてのディレクトリを
 検索範囲に指定しています。

 でも、もっと狭い範囲を検索したいというのであれば、ここに検索したい
 ディレクトリを指定してあげればいいわけです。

■たとえば、「/home」ディレクトリ配下の「test」という名前のファイルを
 検索したい場合には

 「find /home -name test」

 としてあげれば検索できます。


■次に、検索条件とありますが、ここで色々な条件を指定することで複雑な
 ファイル検索をすることができます。

 例では「-name」を指定しています。
 これは、ファイル名を指定して検索するという指定をしています。

 他には「-user」があります。これはファイルの所有者が指定したユーザ
 のファイルを検索結果として表示させます。

 「find /home -user pakira」

 と実行すると、「/home」ディレクトリ配下のpakiraが所有者しているファイル
 がすべて表示されます。


■ファイルタイプで絞込み検索をしたい!という時には
 「-type ファイルタイプ」を指定します。

 「-type f」でファイルを検索
 「-type d」でディレクトリを検索

 します。


■ここの条件は組み合わせることで、更に対象ファイルを絞り込むことができます。
 Yahooで検索するときと同じで、たくさんのキーワードを指定することで絞込み
 検索をするのと同じ要領ですね♪


 「find /home -user pakira -name test -type f」


 この実行条件は、「/home」ディレクトリ配下のpakiraが所有者しているファイルで
 名前が「test」のものを表示させなさいという意味になります。


■このfindコマンドはいくつかの条件を組み合わせて使うことで、大変な威力を発揮
 します。是非、あなたもこのコマンドを覚えて、Linuxのファイル検索を自在に
 操ってください。

■その他のオプションはこちらです。

 -atime 指定した時間とファイルが最後にアクセスされた時間を比較する 
 -mtime 指定した時間とファイルの最終更新日を比較する 




ホームへ戻る - コマンドリファレンスへ戻る