Hace un tiempo pensé en publicar respecto al tópico que expongo hoy, sin embargo pensé que al ser un tema muy conocido no sería de interés. Después de un poco andar, me di cuenta que no resulta tan trivial y que puede ayudar a algunas personas que existan artículos como éste y en particular en español, por lo que decidí retomar y publicar un par de artículos, partiendo por este.
Quisiera sus comentarios, de si encuentran esta información útil o no, para ver si sigo haciendo publicaciones como ésta.
Problemática: por que buscar los últimos archivos modificados en Linux
Por diferentes razones tal vez queremos buscar los ultimos archivos modificados en Linux. Razones como, por ejemplo:
- Instalé un programa y quiero saber que archivos modificó
- Tengo una actualización y quiero saber el / los filesystem que está ocupando
- Quiero identificar los archivos modificados recientemente
Cuando pensamos en buscar los ultimos archivos modificados en Linux, lo primero que se nos viene a la cabeza es usar el comando
find, pero find es muy amplio y necesitamos acotar y esa es la razón de este artículo, algunas opciones que nos permitan acotar la búsqueda.
Solución: buscar los ultimos archivos modificados en Linux
En esta solución expongo dos simples opciones que combino:
- Filtrar por tiempo
- Filtrar directorios no relevantes
Filtrando los resultados de búsqueda: por tiempo, últimos modificados
Para filtrar por los ultimos archivos modificados en el tiempo podemos usar el parámetro cmin. cmin nos permitirá especificar una cantidad de minutos hacia atrás, buscando archivos que fueron modificados desde el momento actual hasta
x minutos atrás.
Por ejemplo:
$ find . -cmin -30
En este ejemplo, find buscará archivos en el
directorio actual (.) que fueron modificados
hace 30 minutos (o menos)
Esto resuelve nuestro problema y podría quedar hasta ahí, pero en
ocasiones, la busqueda retornará resultados de directorios que no nos
interesan. Entonces iremos un paso más allá en el filtro, con la siguiente opción de búsqueda.
Filtrando los resultados de búsqueda: excluyendo directorios
Si, por ejemplo, hacemos una busqueda desde el directorio raiz (/) el resultado arrojará archivos modificados en los directorios /proc /var /sys, entre otros, que en la mayoría de los casos no son de interés ya que son directorios de sistema y no de una aplicación. Para filtrar los directorios "indeseados" usamos la opción -prune
Excluyendo un directorio
Para excluir solo un directorio ocupamos la opción
prune con el flag
o, como se muesta a continuación:
$ find / -path /proc -prune -o -cmin -30
Esto buscará en el
directorio raiz (/) todos los archivos modificados en los
últimos 30 minutos, excluyendo los que están el el directorio
/proc
Excluyendo varios directorios
Para excluir varios directorios, listamos los directorios entre paréntesis, pudiendo añadir todos los directorios que queremos excluir
$find / \( -path /proc -o -path /sys -o -path /run -o -path /var \) -prune -o -cmin -30
Esto buscará en el
directorio raiz (/) todos los archivos modificados en
los
últimos 30 minutos, excluyendo los que están el los directorios
/proc ,
/sys ,
/run y
/var