find
findコマンドはファイルやディレクトリを検索するコマンドです。設定ファイルの場所を探す時などに重宝します。
find [検索開始ディレクトリ] [検索条件] [アクション]
という形で利用します。
例えば
find [探したいディレクトリ] -name hoge.txt -print
とすると、該当のディレクトリにhoge.txtが存在すればhoge.txtと出力されます。ワイルドカードと組み合わせることで様々な検索が可能になります。なお、-printについてはデフォルトのアクションとして設定されているため、省略が可能です。
例えば
find [探したいディレクトリ] -name '*.txt'
とすることで、探したいディレクトリ以下の全てのtxtファイルを探すことが可能です。
findのオプション(検索条件)
-name
-nameオプションを利用すると、ファイルやディレクトリ名の一部のみを利用した検索が可能です。
find -name hoge.txt
とすると、カレントディレクトリ以下のhoge.txtを探し出して、それぞれのパスを表示します。
ワイルドカードを利用する場合には
find -name '*.txt'
のようにクオートを利用する必要があります。(利用しない場合は、コマンドに引き渡される前にシェルで展開されてしまうため。)
なお、-nameの代わりに-inameとすることで、大文字小文字を区別しなくなります。
-type
指定したファイルタイプのファイルのみを対象として検索します。
find -name \*hoge\* -type d
とすると、hogeが名前に含まれているディレクトリのみを検索します。
-maxdepth
再帰的に検索する階層の深さを設定します。
find -maxdepth 1 -name hoge.txt
とすると、カレントディレクトリのみを対象にhoge.txtを検索します。