Find es uno de los comandos más utilizados en sistemas Unix-like para localizar archivos dentro de su estructura de directorios. En GNU/Linux nos lo encontramos formando parte del paquete findutils.
Generalmente esas búsquedas las hace siguiendo unos criterios especificados por el usuario. En esta ocasión, vamos a hacer que nos muestre aquellos archivos que han sido modificados, en un periodo de tiempo determinado.
- Si queremos saber los archivos y directorios que se han modificado desde el último día podemos ejecutar:
find -mtime -1
- Desde hace una semana:
find -mtime -7
- Podemos buscar algo más cercano, en este caso por minutos (los últimos 120′ en el ejemplo):
find -mmin -120
- O todo lo contrario…vamos a buscar lo que se cambió hace más de 30 días:
find -mtime +30 -daystart
- Para no volvernos locos, vamos a concretar algo más. Entre 30 y 40 días:
find -mtime +30 -mtime -40 -daystart
- La búsqueda se puede dirigir hacia un directorio en concreto. Por defecto de forma recursiva:
find /home/replicante/Documentos -mtime -2
- O bien estableciendo un nivel de profundidad determinado con -maxdepth:
find -maxdepth 1 /home/replicante/Documentos -mtime -2
- También podemos pasar la salida a un archivo de texto para estudiarla con mayor comodidad:
find -mtime -1 > archivo.txt
- Y especificar que tan solo se muestren los archivos en los resultados (nada de directorios o enlaces simbólicos). Para ello añadimos la expresión -type f, en cualquiera de los comandos mencionados anteriormente. Sería algo así:
find -type f -mtime -1
- Un vistazo al extenso manual de find:
man find
nos va a descubrir múltiples opciones y parámetros, que podemos combinar con estas búsquedas de tipo temporal.
- Así vemos que podemos añadirle un filtrado por nombre (-name) con expresiones regulares. En este último ejemplo buscamos los archivos de tipo MID que han sido modificados en los últimos 7 días.
find -mtime -7 -name "*.MID"
- O bien jugar con el tamaño (-size):
find -mtime -7 -size +25M
Similar a -mtime existen otras funciones, que determinan la última vez que se abrió un archivo (atime) o bien fue creado (ctime). Supongo que tendremos ocasión de echarles un vistazo en cualquier otro momento.
Find siempre es un mundo que no terminamos de descubrir.
A mi me gusta locate para hacer búsquedas sencillas, pero find está lleno de posibilidades.
Hola tannhausser!
Tus comentarios son superútiles!
Uso muy poco la consola, y con los man, a veces larguísimos, me pierdo. Con tu comentario a mano… lo visitaré con frecuencia!
Muchísimas gracias!
Gracias Silvio! La verdad es que find a veces es poco lioso de usar y cuesta acordarse de todos los comandos.
Creo que tb. tendré que visitar esta entrada con frecuencia 🙂
Gracias por estos datos Estimado. Impecable como siempre.
Gracias amigo! Me alegro que te sean útiles.
Un post genial, apuntado en los bookmarks.
Aquí otro también en español con mas ejemplos: https://www.sysadmit.com/2018/08/linux-ver-ultimos-archivos-modificados.html
Gracias José!
Saludos!