Buscar comando para buscar el nombre de una carpeta específica y luego buscar dentro del resultado

Buscar comando para buscar el nombre de una carpeta específica y luego buscar dentro del resultado

Tengo un montón de sitios de WordPress alojados en un entorno de alojamiento compartido. Como ocurre con todos los sitios de WordPress, hay un directorio de "cargas". Me gustaría buscar archivos potencialmente maliciosos que se encuentren dentro de esas carpetas con regularidad, pero, por supuesto, no quiero hacerlo uno por uno.

Entonces la pregunta es ¿cómo puedo buscar en todos los directorios de "cargas" un archivo con extensión ".php"?

Por ejemplo:

find . -type d -iname "uploads"

me muestra todas las carpetas de "cargas" en mi directorio raíz pero también quiero buscar dentro de esos directores

Respuesta1

Es posible canalizar la salida de su comando a otro, pero puede buscar ambos criterios a la vez, usandogrepyExpresiones regulares:

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

Cómo funciona:

  • find . -type flizatodoarchivos en el directorio actual y sus subdirectorios.

  • grep -i "/uploads/.*\.php$"filtra la salida:

    • -ihace que la búsqueda no distinga entre mayúsculas y minúsculas

    • /uploads/.*\.php$es la expresión regular que una línea debe coincidir para poder mostrarse

      • /uploads/ phpson exactamente eso

      • .*es cualquier número de apariciones de cualquier tipo de caracteres

      • \.es literal.

      • $señala el final de la línea

Puedes lograr el mismo resultado con

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

pero la sintaxis es una molestia si conoces las expresiones regulares de grepPerl, PHP, JavaScript, etc.

información relacionada