Existe alguma maneira de evitar que o find pesquise recursivamente em subdiretórios?

StackOverflow https://stackoverflow.com/questions/27077

  •  09-06-2019
  •  | 
  •  

Pergunta

Quando eu faço:

$ find / 

Ele pesquisa todo o sistema.
Como posso evitar isso?

(Esta pergunta vem de um "responder"para outra pergunta.)

Foi útil?

Solução

Bom dia,

Só queria expandir a sugestão de Jon de usar -prune.Não é a opção de localização mais fácil de usar, por exemplo, apenas pesquisar no diretório atual, o comando find se parece com:

find . \( -type d ! -name . -prune \) -o \( <the bit you want to look for> \)

isso impedirá que find desça para subdiretórios dentro deste diretório.

Basicamente, diz: "podar qualquer coisa que seja um diretório, cujo nome não seja ".", ou seja,diretório atual."

O comando find avalia da esquerda para a direita para cada item encontrado no diretório atual, após a conclusão do primeiro elemento, ou seja,o segmento de remoção, ele continuará com o item correspondente em sua segunda expressão -o (OR).

HTH.

Saúde, Rob

Outras dicas

Considerar:

-maxdepth n
             True if the depth of the current file into the tree is less than
             or equal to n.

-mindepth n
             True if the depth of the current file into the tree is greater
             than or equal to n.

Talvez seja melhor usar curingas.Por exemplo, se você quiser encontrar todos os scripts ksh no diretório atual:

$ ls *.ksh

Use o -ameixa seca opção.

Você pode até fazer

echo /specific/dir/*.jpg

pois é o seu shell que expande o curinga.Digitando

ls *.jpg

equivale a digitar

ls foo.jpg bar.jpg

dados foo.jpg e bar.jpg são todos os arquivos que terminam com ".jpg" no diretório atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top