findとlocateとは
Linuxでファイル検索コマンドと言ったらすぐに思いつくのはfindかlocateです。この2つの違いはlocateには検索用データベースを用意するので比較的高速に検索出来るということ、それに対してfindは様々なオプションを付けて高度な検索が出来るということぐらいの違いしかないと思います。備忘録のために2つのコマンドの使い方をまとめていきたいと思います。
locateから
自分は基本的にlocateをよく使います。
# updatedb
$ locate ファイル名
ファイルを検索する前にupdatedb
でデータベースの更新を行っています。
find
findコマンドの使い方は基本的にはこんな感じです。
$ sudo find [path] [オプション]
探したい場所と探し方を指定します。例えば、
$ sudo find / -maxdepth 4 -name *RECOVER*
ルートディレクトリ配下の4階層下までで、名前にRECOVERが含まれるファイルをワイルドカードによって部分一致検索をしています。
正規表現を使うとなお良いです。ちなみに正規表現はlocateでも使えます。
findコマンドは他にもファイルタイプを指定出来たりします。
$ sudo find / -maxdepth 4 -name *RECOVER* -type d
上のコマンドではディレクトリのみを検索しています。今更ですがここまで管理者権限で実行しているのはアクセス権限が無いことも想定しているからです。一般権限だとアクセス権限の無い階層への検索はスキップされます。