encontre o comando no linux

encontre o comando no linux

Meu amigo me disse que é possível trabalhar com a opção -r para localizar arquivos recursivamente em diretórios e subdiretórios. Por favor, diga-me o erro na instrução fornecida, ele não funciona

find / -type f -r -name "abc.txt"

Responder1

A razão pela qual não funciona é porque find não tem -ropção. Embora seja verdade que para muitos programas o -rsinalizador significa 'recursivo', este não é o caso para todos e não é o caso de find. O trabalho defind é procurar arquivos e diretórios, não é muito frequente que vocênãoquero que seja recursivo.

Você pode verificar as opções da maioria dos programas com o mancomando. Por exemplo, man find. Como o manual de localização é enorme, você pode querer pesquisá-lo pela -ropção:

$ man find | grep -w -- -r

O -- apenas diz ao grep para parar de ler as opções, sem ele, o -r seria passado como uma opção para o grep. Além disso, você pode pesquisar na página de manual pressionando, /escrevendo o que deseja pesquisar e digitando.

Esse comando não retorna nada, compare com este que pesquisa no manual do cp:

$ man cp | grep -w -- -r
   -R, -r, --recursive

Como findé sempre recursivo, o que ele possui é o inverso, um sinalizador que permite escolher em quantos subdiretórios ele deve descer:

   -maxdepth levels
          Descend at most levels (a non-negative integer) levels of direc‐
          tories below the command line arguments.  -maxdepth 0
           means only apply the tests and  actions  to  the  command  line
          arguments.

   -mindepth levels
          Do  not apply any tests or actions at levels less than levels (a
          non-negative integer).  -mindepth  1  means  process  all  files
          except the command line arguments.

Portanto, sempre que tiver dúvidas sobre um comando, leia sua manpágina, pois nunca se sabe o que uma determinada opção pode fazer. Por exemplo:

$ man sort | grep -w -- -r
   -r, --reverse
$ man mount | grep -w -- -r,
   -r, --read-only
$ man awk | grep -A 8 -w -- -r
  -r
  --re-interval
          Enable the use of interval  expressions  in  regular  expression
          matching (see Regular Expressions, below).  Interval expressions
          were not traditionally available in the AWK language.  The POSIX
          standard  added them, to make awk and egrep consistent with each
          other.  They are enabled by default, but this option remains for
          use with --traditional.
$ man sed | grep -w -- -r
   -r, --regexp-extended
$ man xterm | grep -w -- -r
   -r      This option indicates that reverse video should be simulated by
           swapping the foreground and background colors. 

Você entendeu a ideia.

Responder2

findjá é recursivo, você não precisa do-r

informação relacionada