web-dev-qa-db-ja.com

findの情報ページを解釈する方法

これは、info findと入力すると表示される内容の始まりです

find [-H] [-L] [-P] [-D DEBUGOPTIONS] [-OLEVEL] [FILE...] [EXPRESSION]

 'find' searches the directory tree rooted at each file name FILE by

ツリーで見つかった各ファイルのEXPRESSIONを評価します。

これは正確ですか?[]の内部はオプションであると思いますか?または必須ですか?

findコマンドの例をいくつか示します:

How can I recursively find all files in current and subfolders based on wildcard matching?

find . -name "foo*"

以下はどのようにここに適合しますか:

.
-name
"foo*"

この情報は、私が数十年前に古くなったテキストを見つけるのですか?
それとも間違っていますか?
それとも私はそれを間違って読んでいますか?

編集:

最初の答えを見た後、私はそれが表現ではないことを確信しなければなりません。少なくとも男性と情報ページで判断します。

EXPRESSION
   The part of the command line after the list of starting points is the expression.  This  is  a
   kind  of  query specification describing how we match files and what we do with the files that
   were matched.  An expression is composed of a sequence of things:

   Tests  Tests return a true or false value, usually on the basis of some property of a file  we
          are  considering.   The  -empty  test for example is true only when the current file is
          empty.

   Actions
          Actions have side effects (such as printing  something  on  the  standard  output)  and
          return  either true or false, usually based on whether or not they are successful.  The
          -print action for example prints the name of the current file on the standard output.

   Global options
          Global options affect the operation of tests and actions specified on any part  of  the
          command  line.  Global options always return true.  The -depth option for example makes
          find traverse the file system in a depth-first order.

   Positional options
          Positional optiona affect only tests or actions which follow them.  Positional  options
          always  return  true.   The -regextype option for example is positional, specifying the
          regular expression dialect for regulat expressions occurring later on the command line.

   Operators
          Operators join together the other items within the expression.  They include for  exam‐
          ple  -o  (meaning logical OR) and -a (meaning logical AND).  Where an operator is miss‐
          ing, -a is assumed.

   If the whole expression contains no actions other than -Prune or -print, -print  is  performed
   on all files for which the whole expression is true.

   The -delete action also acts like an option (since it implies -depth).

-nameについてはまったく触れられておらず、-nameTest, Action, Global Option, Positional Option or Operatorのようには聞こえません。そして、manページはそれらのものが何であるかさえ説明していませんか?

これは、ソフトウェアドキュメントの歴史の中で最悪の人/情報ページのようです。

3
Marko Avlijaš

いいえ、それは古くはありません-通常のマニュアルページのバージョン(man findではなくinfo find)の方がおそらく理解しやすいでしょう。

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

の場合

find . -name "foo*"
  1. .パスと呼ばれます[〜#〜]ファイル[〜#〜]情報ページ)
  2. -name "foo*"です

その他のオプション[-H] [-L] [-P] [-D debugopts] [-Olevel]はすべて空です。

GNU findは、pathexpressionの両方をオプションにすることは少し変わっていることに注意してください。したがって、簡単なコマンド

find

現在のディレクトリから開始して、すべてのファイル(およびディレクトリ)を再帰的に検索します。移植性のために、例のように現在のディレクトリを明示的に.として指定することを好む人がよくいます。

8
steeldriver