comando simples “find” não funciona

2

Estou na pasta principal dos meus hosts da web, tentando encontrar um arquivo usando find . Eu não consegui encontrá-lo - ele foi listado como nenhum arquivo ou diretório - e eu pensei que talvez não estivesse em lugar algum.

No entanto, o seguinte comando também não funciona:

find index.php

qual é errado porque há um gazilhão deles. Por que o achado não está funcionando? Existe um comando melhor para usar?

    
por Oliver Williams 07.09.2015 / 18:02

3 respostas

7

A sintaxe de find não é semelhante ao que você escreveu, leia a página de manual man find para obter uma ideia detalhada.

Por exemplo, se você quiser encontrar arquivos chamados index.php no diretório atual e todos os sub-diretórios sob ele, você pode usar:

find . -name index.php -type f 

Se você quiser pesquisar arquivos com nomes, diga findex.php , index.phpfoo , index.php que você precisa usar:

find . -name '*index.php*' -type f 

* é um padrão glob que significa zero ou mais caracteres.

Por outro lado, se você quiser procurar apenas no diretório atual:

find . -maxdepth 1 -name '*index.php*' -type f 
    
por 07.09.2015 / 21:33
2

Eu tive o mesmo problema usando find from findutils 4.7.0-git. Se eu fizer find . -maxdepth 12 -name '*' -type f , apesar de ter um milhão de arquivos na árvore abaixo, nenhum arquivo será retornado, exceto aqueles no diretório atual. O problema para mim era que os diretórios abaixo eram links, então eu precisava fazer:

find -L . -maxdepth 12 -name '*' -type f

O -L garante que todos os links sejam seguidos (costumava ser - seguir, mas foi descontinuado).

    
por 17.10.2016 / 15:40
0

Olhe para o gerenciamento de encontrar. Existem vários usos. Por exemplo: Encontre. grep "Index.php" Ou encontre. -name Xyz.php

    
por 07.09.2015 / 18:55

Tags