Eu tenho vários sites wordpress hospedados em ambiente de hospedagem compartilhada. Como acontece com todo site wordpress, há um diretório de “uploads”. Gostaria de procurar regularmente arquivos potencialmente maliciosos que estejam nessas pastas, mas é claro que não quero fazer isso um por um.
Então a questão é como posso pesquisar em todos os diretórios de "uploads" um arquivo com extensão ".php"
Por exemplo:
find . -type d -iname "uploads"
me dá todas as pastas "uploads" no meu diretório raiz, mas também quero pesquisar nesses diretórios
Responder1
É possível canalizar a saída do seu comando para outro, mas você pode pesquisar os dois critérios ao mesmo tempo, usandogrep
eExpressões regulares:
find . -type f | grep -i "/uploads/.*\.php$"
Como funciona:
find . -type f
listastodosarquivos no diretório atual e seus subdiretórios.grep -i "/uploads/.*\.php$"
filtra a saída:-i
torna a pesquisa sem distinção entre maiúsculas e minúsculas/uploads/.*\.php$
é a expressão regular que uma linha deve corresponder para ser exibida/uploads/
php
são exatamente isso.*
é qualquer número de ocorrências de qualquer tipo de caracteres\.
é um literal.
$
sinaliza o fim da linha
Você pode obter o mesmo resultado com
find . -type f -iregex ".*/uploads/.*\.php"
mas a sintaxe é um incômodo se você conhece expressões regulares de grep
Perl, PHP, JavaScript, etc.