find コマンドを使用すると、特定の場所で、特定の検索基準に準拠するファイルとディレクトリを検索できます。入力した検索場所から始めて、サブディレクトリとその内容を含むディレクトリ構造を再帰的に検索します。見つかったファイルに対して 1 つ以上のアクションを実行できます。
-type オプションを使用すると、探しているオブジェクトのタイプ (ディレクトリの d やファイルの f など) を指定できます。 -name オプションは、探しているオブジェクトの名前を指定する場所です。次の例では、ユーザーのホーム ディレクトリ (およびすべてのサブディレクトリ) で 2021_report という名前のすべてのファイルを検索します。
$ find /home/user -type f -name 2021_report
構文
find コマンドの構文は次のとおりです。
$ find [options] {search locations} {search criteria} [actions]
VS を検索します。コマンドを見つける
locate コマンドは、データベースを検索し、システムに存在するファイルに関する情報を取得します。ただし、このデータベースを最新の状態に維持しないと、古い結果が生成される可能性があります。一方、find コマンドは、ファイル システムのライブ検索を実行し、特定の場所に集中する場合があります。 find コマンドは、locate コマンドよりも検索を完了するのに時間がかかる場合があります。
見つかったファイルのオプション
システムが基準を満たすリストを見つけた場合、結果に対して実行できるアクションがいくつかあります。これらのオプションのいくつかを次の表に示します。
オプション | 慣れている |
---|---|
見つかったファイルの場所を表示します。 | |
-exec | 次のコマンドを実行します。 |
-OK | 後続のコマンドを対話的に実行します。 |
-削除 | 見つかったファイルを削除します。 |
-fprint | 結果をターゲット ファイルに保存します。 |
コマンドの例を見つける
1. 指定したディレクトリ内で名前の付いたファイルを検索するには:
# find / -name file.txt # find . -name file.txt (within current directory)
2. 指定された権限のファイルを見つけるには:
# find / -perm 775 # find / -perm a+x # find . -perm 775(within current directory)
3. 少なくとも 1 つの書き込みビットを設定するには (特定の許可):
# find / -perm /a+w # find . -perm /a+w (within current directory)
4. 実行可能ビットが設定されていないファイルを見つけるには:
# find / ! -perm /111 # find / ! -perm /a+x # find . ! -perm /a+x (within current directory)
5. 誰でも読み取り可能で、少なくとも 1 つの書き込みビットがあり、誰にも実行できないファイルを検索するには:
# find . -perm -a+r -perm /a+w ! -perm /a+x
6. シンボリック リンクをたどらないようにするには:
# find -p / -name file
7. シンボリック リンクをたどるには:
# find -p / -name file
8. コマンドライン引数の処理中以外は、シンボリック リンクをたどらない:
# find -H / -name file
9. ディレクトリ構造内で指定された深さのファイルを見つけるには:
# find -d 2 / -name file
10. 下降レベルを指定するには:
# find -maxdepth 2 / -name file
11. 最小深度レベルを指定するには:
# find -mindepth 4 / -name file
12. ディレクトリ自体の前に各ディレクトリの内容を処理するには:
# find -depth / -name file
13. ファイルのタイムスタンプの開始日を指定するには:
# find -daystart -atime file
14. エラー メッセージが表示されないようにするには (処理中にファイルが削除された場合):
# find -ignore_readdir_race / -name file
15. -ignore_readdir_race をオフにするには:
# find -noignore_readdir_race / -name file
16. 他のマウント ポイントからのディレクトリを含めないようにするには:
# find -mount / -name file
17. 正規表現の構文を変更するには:
# find -regextype type
18. 警告メッセージをオンまたはオフにするには:
# find -warn / -name file # find -nowarn / -name file
19. autofs ファイルシステムのディレクトリを降りない:
# find -xautofs / -name file
20. 他のファイルシステムのディレクトリを下らない:
# find -xdev / -name