script eliminar archivos antiguos Archive

Find + exec, para reemplazar cadenas en ficheros

Pequeño script para Linux que podemos ejecutar en la línea de comandos y que nos permite buscar una cadena y reemplazarla por otra, en múltiples ficheros. Esto es tremendamente útil cuando cambiamos algún nombre, un título de una página html, el nombre de un archivo… y queremos actualizar todos los ficheros que hacen referencia a él. Para ello basta con ejecutar:

find . -type f -exec sed -i s/cadenaVieja/cadenaNueva/g {} \;

Esta línea en concreto buscaría en el directorio actual, y reemplazaría en todos los ficheros las apariciones de cadenaVieja, por cadenaNueva.

Script eliminar archivos creados antes de X dias

Acabo de necesitar un script para eliminar todos los archivos creados antes de X dias, para realizar el mantenimiento de una carpeta en un servidor.

El script que nos permite esto es el siguiente:

find . -mtime +X -exec rm -rf {} \;  #(X es el número de dias)

Este script busca en la carpeta “.” los archivos no modificados hace más “X” dias, y los elimina sin pedir confirmación. Si en vez de los archivos modificados hace más de X dias, queremos los modificados hace “X” dias, quitamos el signo “+”. Si lo que queremos son los modificados hace menos de “X” dias, cambiamos el signo “+” por el signo “-“.