¿Qué es esto? Desde esta página puedes compartir y guardar Borrado automático de ficheros en función de su contenido (Unix) en tu Marcador Social preferido, o enviar un enlace vía E-mail a tus contactos.

Webs Sociales

E-mail

Vía E-mail
02 Octubre, 2009

Borrado automático de ficheros en función de su contenido (Unix)

Publicado en: Informática, Unix

Gracias a tres sencillos comandos Unix (probados en HP-UX) es muy fácil localizar, borrar o listar ficheros que tengan una cadena de texto determinada.

Con la combinación de los comandos: grep, find, exec, rm y ll podemos realizar estas tres tareas de una manera masiva y segura.

Localiza los ficheros que contienen una determinada cadena de caracteres y muestra la linea en la que aparece dicha cadena:

find . -exec grep -i ‘texto que debe contener el fichero’ {} \;

Primero hacemos un find y a este lo completamos con la ejecución de un grep con el modificador -i para que busque la cadena de texto que a continuación metemos entre comillas simples (también funciona con comillas dobles como se mostrará a continuación).

Borra todos los ficheros que contengan una determinada cadena de caracteres:

find . -type f -exec grep -q “texto que debe contener el fichero” {} \; -exec rm -f {} +

En este caso al final hacemos un -exec rm -f para que borre sin preguntar lo que haya encontrado en el find anterior

Listado de los ficheros que contienen la cadena en cuestión y guardado del listado en un log:

find . -type f -exec grep -q “ksugetosstat failed: op = pstat_getprocessor, location = slsgetactive ()” {} \; -exec ll -lrt {} + > /tmp/listado_de_ficheros.log

En este caso ejecutamos un ll -lrt para sacar el listado ordenado por tiempo de los ficheros que contienen la cadena y guardarlo en un log.  Si quitamos: > /tmp/listado_de_ficheros.log en lugar de meterlo en ese log nos lo sacará por pantalla.

Consejo: Si planificamos estos comandos en el crontab podremos planificar y automatizar estas acciones.


Regresar a: Borrado automático de ficheros en función de su contenido (Unix)