...
find . -type f -name '*.php'
Em um servidor Linux, eu preciso encontrar todos os arquivos com uma certa extensão de arquivo no diretório atual e em todos os subdiretórios.
Anteriormente, eu sempre usava o seguinte comando:
find . -type f | grep -i *.php
No entanto, , não encontra ficheiros ocultos, por exemplo .myhiddenphpfile.php . A seguir encontra os arquivos php ocultos, mas não os não ocultos:
find . -type f | grep -i \.*.php
Como posso encontrar os arquivos php ocultos e não ocultos no mesmo comando?
É melhor usar iname (sem distinção entre maiúsculas e minúsculas).
Eu uso este comando find para pesquisar arquivos ocultos:
find /path -type f -iname ".*" -ls
Extraído de: link
O problema é o grep, não o find (tente apenas find . -type f
para ver o que quero dizer).
Se você não citar o *
, então o shell irá expandi-lo - antes que o grep veja seus argumentos de linha de comando; Como o shell não encontra arquivos ocultos por padrão, você terá problemas.
A razão pela qual é apenas encontrar o arquivo oculto é porque o shell já expandiu o *
e assim o grep está correspondendo apenas a esse arquivo.