Listar los últimos archivos modificados de un sistema Linux

Hoy os traigo una forma de conocer los archivos que se han tocado últimamente en nuestro sistema.

Vamos a explicar el procedimiento paso a paso:

find . -type f

Con este comando vamos a mostrar un listado de todos los archivos que están en este directorio y sus subdirectorios.

Ahora vamos a formatear la salida del comando con printf

find . -type f -printf "\n%TF-%TH-%TM %p"

F – Para mostrar el año, mes y día.
H – Para mostrar la hora.
M – Para mostrar los minutos.
p – Para imprimir la ruta.

Ahora le metemos un pipe (tubería) para ordenar:

find . -type f -printf "\n%TF-%TH-%TM %p" | sort -nr -t"-" -k1,5

n – Ordenamiento numérico
r – Para ordenar al revés
t»-» – Se utiliza para indicar que el separador de campos es el guión.
k1,5 – Le indicamos que debe ordenar por los campos del 1 al 5, es decir, empieza por el año, después el mes y así hasta el minuto.

Finalmente recortamos la salida para que solo nos muestre las X primeras líneas, en este caso 20:

find . -type f -printf "\n%TF-%TH-%TM %p" | sort -nr -t"-" -k1,5 | head -20

También podemos ver solo el nombre del fichero en lugar de la ruta completa. Para ello usamos %f:

find . -type f -printf "\n%TF-%TH-%TM %f"

Y finalmente indicar que una buena práctica para limpiar la salida es enviar todos los errores a /dev/null:

find . -type f -printf "\n%TF-%TH-%TM %p" 2>/dev/null | sort -nr -t"-" -k1,5 | head -20

Y tambien podemos quitar todos los ficheros que empiecen por «.», es decir, todos aquellos ficheros ocultos que tenemos en el sistema:

find . -type f -printf "\n%TF-%TH-%TM %p" 2>/dev/null | sort -nr -t"-" -k1,5 | grep -Ev "\.\/\." | head -20

E – Expresiones regulares extendidas.
v – para descartar las líneas que coincidan con el patrón.

A partir de este grep puedes crear el que quieras para descartar también cualquier otro tipo de fichero que no sea interesante para tu búsqueda.

Para finalizar, puedes crear un alias que te permita llamar a este comando de una forma rápida. En este caso lo hemos llamado «lastmod»:

alias lastmod='find . -type f -printf "\n%TF-%TH-%TM %p" 2>/dev/null | sort -nr -t"-" -k1,5 | grep -Ev "\.\/\." | head -20'

Con el alias podrás buscar fácilmente los archivos modificados en el directorio en el que te encuentres.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *