Este comando puede ser de gran utilidad en caso de necesitar identificar qué archivos está modificando una aplicación o servicio. Gracias a la herramienta find
es posible obtener un listado de los últimos archivos que han sido modificados en un sistema de archivos, a partir de una ruta o directorio especificado. He aquí la receta.
Supongamos que necesito saber cuáles son los últimos diez archivos que han sido modificados en el directorio /var
(y todos sus subdirectorios, de forma recursiva). El comando a ejecutar es:
find /var/ -type f -printf "%T@ %p\n" | sort -nr | head -10
Este comando busca (find
) desde el directorio /var
todos los archivos (-type f
, se excluyen los directorios), y para cada uno imprime (-printf
) su fecha de modificación expresada en segundos transcurridos desde el primero de enero de 1970 (%T@
) y su nombre (%p\n
). Luego, utilizando un pipe, ordena de acuerdo a la cantidad de segundos en forma descendente (sort -nr
), y finalmente muestra sólo los diez primeros (head -10
).
El resultado es el siguiente:
[root@centos6 ~]# find /var/ -type f -printf "%T@ %p\n" | sort -nr | head -10 1450888201.1415392720 /var/log/audit/audit.log 1450888201.0965385200 /var/log/sa/sa23 1450888201.0885383830 /var/log/cron 1450888129.9343453690 /var/lib/ntp/drift 1450888057.5101314230 /var/run/utmp 1450888057.5101314230 /var/log/wtmp 1450888057.5101314230 /var/log/lastlog 1450888057.4501304190 /var/log/secure 1450875745.4538536910 /var/lib/certmonger/cas/20120813172615-1 1450861201.6458379830 /var/log/check_array.log
La primera columna muestra las fechas de modificación expresadas en segundos. Si se desea es posible suprimir esta información de salida agregando un último proceso:
[root@centos6 ~]# find /var/ -type f -printf "%T@ %p\n" | sort -nr | head -10 | cut -d' ' -f2 /var/log/audit/audit.log /var/log/sa/sa23 /var/log/cron /var/lib/ntp/drift /var/run/utmp /var/log/wtmp /var/log/lastlog /var/log/secure /var/lib/certmonger/cas/20120813172615-1 /var/log/check_array.log
Una vez más, el poder de find
no deja de asombrarme.