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を検索します。

results matching ""

    No results matching ""