como forçar a localização para procurar subdiretórios de forma recursiva

0

Eu corro este comando

find -iname *something*

Normalmente, ele pesquisa em subpastas, mas se eu tiver um arquivo que corresponda aos critérios no diretório de trabalho, ele apenas informará e parará. Eu estou pensando em escrever uma função que primeiro procura sub-pastas no diretório atual do que muitos comandos de busca para cada um deles, mas eu sinto que deve haver uma maneira mais fácil ... Na verdade eu acho que deveria ser o comportamento padrão, então talvez eu tem algo errado em algum arquivo de configuração?

    
por user186728 26.08.2016 / 19:48

2 respostas

6

O algo inclui um glob que está sendo interpretado pelo shell? Isso faria com que o nome do arquivo expandido fosse passado para o comando find.

Por exemplo, se você executar find -iname *.txt com um arquivo no diretório atual chamado file.txt , o comando resultante após a expansão do shell será find -iname file.txt .

Para evitar essa armadilha, você pode escapar do glob para enviar a string literal para o comando find com find -iname '*.txt'

    
por 26.08.2016 / 20:54
0

Se as subpastas estiverem por trás de links simbólicos, você terá que usar a opção -L. Experimente

find -L . -iname '*something*'

De acordo com as páginas man find

If -L is in effect and find discovers a symbolic link to a subdirectory during its search, the subdirectory pointed to by the symbolic link will be searched.

    
por 06.11.2018 / 06:15

Tags