# find

> ディレクトリツリー下のファイルやディレクトリを再帰的に検索します。
> もっと詳しく: <https://manned.org/find>。

- 拡張子でファイル検索する:

`find {{ルートパス}} -name '{{*.ext}}'`

- 複数のパス/名前パターンに一致するファイルを検索する:

`find {{ルートパス}} -path '{{*/path/*/*.ext}}' -or -name '{{*pattern*}}'`

- 大文字小文字を区別しないモードで、指定された名前にマッチするディレクトリを検索する:

`find {{ルートパス}} -type d -iname '{{*lib*}}'`

- 特定のパスを除いて、与えられたパターンにマッチするファイルを検索する:

`find {{ルートパス}} -name '{{*.py}}' -not -path '{{*/site-packages/*}}'`

- 与えられたサイズ範囲にマッチするファイルを検索し、再帰的な深さを"1"に制限する:

`find {{ルートパス}} -maxdepth 1 -size {{+500k}} -size {{-10M}}`

- 各ファイルに対してコマンドを実行する (ファイル名にアクセスするにはコマンド内で`{}`を使用):

`find {{ルートパス}} -name '{{*.ext}}' -exec {{wc -l}} {} \;`

- 今日変更されたすべてのファイルを検索し、その結果を引数として1つのコマンドに渡す:

`find {{ルートパス}} -daystart -mtime {{-1}} -exec {{tar -cvf archive.tar}} {} \+`

- 空のファイルまたはディレクトリを検索し、冗長に削除する:

`find {{ルートパス}} -type {{f|d}} -empty -delete -print`
