Pues resulta que hoy me pidieron que revisara unos archivos por SSH lo cual obviamente representa consola y con ello la falta de herramientas gráficas que facilitan la búsqueda.
La tarea fue: listar archivos modificados en un rango de fechas
Obviamente, un ls -l no me fue suficiente. Aquí les describo paso a paso lo que hice hasta llegar al resultado.
Listar archivos con fecha completa
El primer problema fue que al hacer un ls -l no aparece la fecha completa…
Link: Como poner colores a la terminal
Lograr mostrar el año se cumple con el comando
1 |
ls -l --full-time |
Encontrar archivos modificados en un rango de fechas
Ahora ¿Cómo hago si de esta lista de archivo solo quiero mostrar los modificados hace 15 días? Haremos un find indicando que “tan allá” en la fecha lo queremos y que “tan acá” lo queremos. Para eso se usa mtime, el cual en realidad funciona por horas de modo que el número indicado se multiplica por 24.
1 |
find -mtime +1 -mtime -15 |
Con eso tenemos la lista de los archivos modificados que han sido modificados a lo mucho hace un día pero hace menos de 15 días.
Este comando no nos muestra los archivos como lo hicimos con un ls, pero lo podemos concatenar el ls al final para lograrlo.
1 |
find -mtime +1 -mtime -15 -ls |
De esta manera tenemos ya la lista de todos los archivos de manera recursiva que han sido modificados en el rango de fechas especificado.
Ignorar archivos ocultos
Si quisiéramos además ignorar los archivos ocultos lo hacemos con:
1 |
find \( ! -path './.*' \) -mtime +1 -mtime -15 -ls |
¿Te gustó este artículo?
Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.
Tambien se puede hacer una busqueda y filtrar con grep de esta manera:
Por ejemplo para buscar un archivo en cualquier parte del sistema y que fue modificado el 26 de agosto:
ls -l / |grep “ago 26” -R
Considerando que el comando ls -l muestra el mes abreviado y despues el dia, y pasamos el resultado del grep por el tunel. Agregamos la opcion -R para que la busqueda sea recursiva. Notese el “/” luego del ls -l para indicar que se debe iniciar al principio del arbol.
Hola Michelle Gracias por tus datos
Tengo una pregunta concreta
segun la fecha de modificacion del archivo necesito saber el tamaño que ocupan
ejemplo tengo una carpeta de 880GB y necesito saber del 1 de enero de 2017 hasta el 31 de diciembre de 2017 cuanto pesan esos archivos
agradezco alguna luz
Muy buen post, la verdad es que me ha ayudado mucho.
Aquí algunos ejemplos mas para buscar los últimos archivos modificados: https://www.sysadmit.com/2018/08/linux-ver-ultimos-archivos-modificados.html
Saludos desde España.
hola, para sacar archivos de ciertas fechas y copiarlos a una carpeta; por ejemplo del dia 10 al 14, como podria ser?
Estimada Michelle. Excelente tu aportación. Por favor podrías ayudarme, ya que necesito eliminar ciertos archivos que se generan siempre entre las 23h00 y las 00h00
Muchisimas gracias
Hola Michelle, y si quisiera acotar la búsqueda por fecha a una carpeta específica y sus subcarpetas de forma recursiva, cómo seria el comando?
Si estoy entendiendo tu pregunta, solo necesitamos agregar mas parametros al find:
find / -type d -name 'tufolder'
/ – Para indicar que busque en todo el sistema
d -name ‘fufolder’ – Para indicarle que busque directorios con el nombre ‘tufolder’
Y sobre esto concatenas el resto de lo que necesites en tu búsqueda.
hola,
estoy creando una agenda de telefono y en una de las opciones necesito crear una que me muestre la lista de contactos creada después de una fecha insertada dal usuario.
me podrías ayudar?
gracias.!!