ツールの最後にある「*」の意味を見つけてください。

ツールの最後にある「*」の意味を見つけてください。

最近、特定のコマンドが隠されたフォルダをスキップする理由を確認するように求められましたが、find問題は次のようにパスの末尾にワイルドカードがあることを発見しました。

find /path_to_folder/*

上記のコマンドの出力は隠しフォルダをスキップし、通常のファイルとフォルダのみを表示します。

しかし、私たちが望むなら

find /path_to_folder/

すべてのファイルとフォルダ(隠しファイルを含む)を持つことができます。

誰かがこの振る舞いを理解するのを手伝ってくれたり、詳細を見つけることができる場所を教えてもらえますか?マニュアルを検索してみましたが、find明確な答えが得られませんでした。

答え1

このユーティリティは1つ以上の検索パスを使用します。これは、などの述語を使用してfind追加のテストを指定する前に、ユーティリティの最初の引数です。-name-type

を使用すると、find /path_to_folder/*シェルはワイルドカードパターンを一致/path_to_folder/*するパス名のリストに展開します。これらのそれぞれが検索されますfind*デフォルトでは、パターンの末尾にある名前は隠された名前には拡張されません。ユーティリティは各検索パスに移動し、隠された名前を含むその下のすべての名前を検索します。ただし、そのパス名を指定していないため、それ自体はfind検索しません。/path_to_folder

を使用するときは、パス名を検索パスとしてfind /path_to_folder/指定します。findユーティリティは、隠し名前を含むディレクトリとそのサブディレクトリをfind参照します。この場合、このパス名を検索パスとして指定したので、/path_to_folder隠された名前を直接見つけます。/path_to_folder

要約:

  • /path_to_folder/*シェルが一致する隠し名前ではなく、すべての名前のリストに展開されるワイルドカードパターン/path_to_folder。以下の名前は検索パス/path_to_folderとして使用されますが、リストには含まれていません。find/path_to_folder

  • /path_to_folder/単一パス名として使用すると、findディレクトリが検索され、ディレクトリ内または下のすべてのエントリが検索されます。

関連情報