Hoy he tenido que buscar una ruta relativa en varios archivos php, y la verdad es que eran unos cuantos archivos. Por eso me acordé de algo así de una clase que me dio un buen profesor en clase de Sistemas Informáticos, era algo relativo a buscar y reemplazar texto dentro de varios archivos al mismo tiempo desde la terminal. Por este motivo he «buscado» un poco para refrescarme la memoria.
Además de para solucionar el problema de direcciones relativas que se me planteó en relación a unas direcciones relativas, la solución «a mi problema» también es una estupenda salida cuando existe vulneraciones a un sitio por inyección de código. Estos ataques inyectan una cadena de código maliciosa en todos o varios archivos PHP del sitio atacado. Cuando esto ocurre, existen varias maneras de reaccionar ante ello.
Una manera de solventar este problema, es editando a mano uno a uno los archivos. Buscar y reemplazar la cadena maliciosa, ya sea restaurando una copia de seguridad de los archivos del sitio o bien tomando el trabajo de entrar y editar uno a uno los PHP infectados.
A pesar de que existen programas con un entorno gráfico para realizar esta misma tarea, uno que es un romántico de la terminal buscó y encontró un comando (conocido por muchos). Utilizando GREP y xargs sed podemos hacer búsqueda y reemplazo de las cadenas de texto que queramos, de esa manera reparamos o arreglamos el problema sobre todos los archivos.php que encontremos. Lo de los archivos php es una opción personal, funciona con todo tipo de archivos.
Buscar y reemplazar texto dentro de archivos php, utilizando la terminal y grep
grep -lr 'Texto_a_Eliminar' *.php|xargs sed -i 's/Texto_a_eliminar/Texto_a_insertar/g'
Aclarar que habrá que situarse previamente en el directorio sobre el que queramos actuar. Es importante aclarar que el comando así tal cual lo presento aquí no va a realizar ninguna acción sobre el contenido de ningún subdirectorio que en el se encuentre (ni tampoco sobre su contenido). Creo que eso se puede hacer, pero para el que quiera saber cómo, lo invito a echar un vistazo a la ayuda de esta comando.
En caso de querer saber hacer más cosas con este fantástico comando se puede visitar la siguiente dirección.
2 Comentarios
Es justo lo que necesitaba. Me ha venido genial el apunte. Gracias
Gracias por la visita.