Encontre o comando para pesquisar o nome da pasta específica do que pesquisar no resultado

1

Eu tenho vários sites wordpress hospedados em um ambiente de hospedagem compartilhada. Como em todos os sites wordpress, há o diretório "uploads". Eu gostaria de procurar por arquivos potencialmente maliciosos que estão dentro dessas pastas regularmente, mas eu não quero, claro, fazer um por um.

Então, a questão é como eu posso pesquisar todos os diretórios "uploads" para um arquivo com extensão ".php"

Por exemplo:

find . -type d -iname "uploads"

me pega todas as pastas "uploads" no meu diretório raiz, mas eu também quero pesquisar dentro desses diretórios

    
por shaytac 13.04.2012 / 22:39

1 resposta

3

É possível canalizar a saída do seu comando para outra, mas você pode pesquisar os dois critérios de uma só vez, usando grep e Expressões regulares :

find . -type f | grep -i "/uploads/.*\.php$"

Como funciona:

  • find . -type f lista todos arquivos no diretório atual e em seus subdiretórios.

  • grep -i "/uploads/.*\.php$" filtra a saída:

    • -i torna a pesquisa insensível a maiúsculas e minúsculas

    • /uploads/.*\.php$ é a expressão regular que uma linha precisa corresponder para ser exibida

      • /uploads/ php são exatamente isso

      • .* é qualquer número de ocorrências de qualquer tipo de caractere

      • \. é um literal .

      • $ sinaliza o fim da linha

Você pode obter o mesmo resultado com

find . -type f -iregex ".*/uploads/.*\.php"

mas a sintaxe é um problema se você conhece expressões regulares de grep , Perl, PHP, JavaScript, etc.

    
por 13.04.2012 / 23:06

Tags