Como interpretar a página de informações do find

3

Este é o começo do que recebo quando digito info find

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

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

avaliando a EXPRESSÃO em cada arquivo que encontrar na árvore.

É preciso que eu assuma que algo dentro de [] é opcional? Ou obrigatório?

Aqui estão alguns exemplos do comando find:

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

find . -name "foo*"

Como o seguinte se encaixa aqui:

.
-name
"foo*"

Esta informação encontra texto que eu desatualizado por várias décadas?
Ou apenas incorreto?
Ou estou lendo errado?

EDITAR:

Depois de ver a primeira resposta, devo concordar que não é expressão. Pelo menos a julgar pelo homem e pela página de informações.

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).

Ele não menciona -name e -name não parece com Test, Action, Global Option, Positional Option or Operator . E man page nem explica o que são essas coisas?

Esta parece ser a pior página man / info na história da documentação do software.

    
por Marko Avlijaš 04.11.2016 / 14:41

1 resposta

8

Não, não está desatualizado - embora a versão da página de manual normal ( man find em vez de info find ) seja talvez mais fácil de entender:

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

No caso de

find . -name "foo*"
  1. . é um caminho (referido como ARQUIVO na página de informações)
  2. -name "foo*" é uma expressão

e as outras opções [-H] [-L] [-P] [-D debugopts] [-Olevel] estão vazias.

Note que o GNU find é um tanto incomum em fazer tanto path quanto expression opcional; então o comando simples

find

encontrará todos os arquivos (e diretórios), recursivamente, a partir do diretório atual; para portabilidade, você verá pessoas preferindo especificar o diretório atual explicitamente como . como em seu exemplo.

    
por steeldriver 04.11.2016 / 14:49

Tags