Eliminar archivos de Solaris anteriores a una fecha y hora determinadas

Eliminar archivos condicionalmente en función de su edad es a veces útil. Esta receta técnica describe un procedimiento para eliminar archivos antiguos mediante el comando de búsqueda UNIX.


El comando encontrar tiene un -más nuevo expresión que compara los archivos encontrados con un archivo de referencia. Devuelve archivos con un tiempo de modificación más reciente que el archivo de referencia. Para buscar archivos más antiguos, preceda la expresión -newer con el operador de negación !.

Si no tiene un archivo para usar con una marca de tiempo adecuada, puede crear un archivo con esta receta técnica: Cree / modifique un archivo UNIX con una marca de tiempo arbitraria.

Dado el archivo de referencia / tmp / timeref, puede encontrar todos los archivos más antiguos en el directorio de trabajo actual y debajo del siguiente comando:

encontrar . ! -newer / tmp / timeref -exec ls -l {} \; | Más

Este comando es seguro y solo proporcionará una larga lista de los archivos de destino, mostrando los archivos una página a la vez. Con este comando, puede asegurarse de que la sintaxis del comando sea correcta antes de realizar la eliminación irreversible.

Una vez que se sienta cómodo con la sintaxis de búsqueda, puede cambiar al comando para eliminar:

encontrar . ! -newer / tmp / timeref -exec rm {} \;

Ten mucho cuidado al usar este comando. No hay una manera fácil de recuperar archivos en UNIX. El uso de la versión larga de la lista de archivos de este comando proporciona una gran seguridad ya que puede ver exactamente lo que sucederá. Cambiar a un directorio y ejecutar el comando de búsqueda dentro de él usando el. ya que la ruta proporciona alguna protección adicional contra la escritura errónea de la ruta.