ver ultimos por mtime modificados modificacion listar fecha extension directorio buscar borrar archivos archivo find centos

find - ultimos - Obtener todos los archivos modificados en los últimos 30 días en un directorio



mtime (1)

CentOS. Debe encontrar los archivos modificados en los últimos 30 días para ver si alguno de ellos ha sido infectado con malware.

Intenté esto:

root@server [/home/someuser/public_html/]# find . -mtime +30 -exec ls -l {} > last30days.txt /;

Pero en lugar de los últimos 30 días, parece haberlo encontrado todo. 22.000 archivos.


Un par de cuestiones

  • No lo está limitando a archivos, así que cuando encuentre un directorio coincidente, mostrará una lista de todos los archivos que contiene.
  • No puedes usar > en -exec sin algo como bash -c ''... > ...'' . Aunque el > sobrescribirá el archivo, por lo que desea redirigir la find completa de todos modos en lugar de cada -exec .
  • +30 es older que 30 días, -30 se modificaría en los últimos 30 días.
  • -exec no es realmente necesario, puede enumerar todo con varias opciones -printf .

Algo como abajo debería funcionar

find . -type f -mtime -30 -exec ls -l {} /; > last30days.txt

Ejemplo con -printf

find . -type f -mtime -30 -printf "%M %u %g %TR %TD %p/n" > last30days.txt

Esto mostrará una lista de archivos en formato "permisos, grupo, hora, fecha, nombre de archivo". -printf es generalmente preferible a -exec en los casos en que no tiene que hacer nada complicado. Esto se debe a que se ejecutará más rápido como resultado de no tener que ejecutar subshells para cada -exec . Dependiendo de la versión de find , también puede usar -ls , que tiene un formato similar al anterior.