Me gustaría que un comando de Linux encuentre archivos modificados en los últimos n
segundos.
¿Hay un script de shell u otra herramienta que pueda ejecutar desde la interfaz de línea de comandos o GUI?
Use el comando de búsqueda de esta manera:
find . -name "*.txt" -mtime -60s
Para encontrar todos los *.txt
archivos modificados en los últimos 60 segundos.
find: missing argument to `-mtime'
. Sin embargo, puedo obtener el comportamiento deseado usando -mmin y un argumento decimal. No pude encontrar ninguna referencia en la página de manual para encontrar para usars
como argumento.-mtime
. Tampoco es "60" incluso una opción válida en POSIX o GNU find. El argumento para-mtime
es un número que especifica la cantidad de períodos de 24 horas cuando se modificó un archivo.La solución con mtime especificando segundos no funciona en mis sistemas Linux que usan
find --version
==find (GNU findutils) 4.4.2
.Obtuve el siguiente error:
Sin embargo, puedo usar
-mmin
(para modificar en los últimos m minutos), y puede tomar un argumento decimal; por ejemplo, lo siguiente busca archivos modificados en los últimos 30 segundos.Así por ejemplo; creando archivos modificados por última vez 1s, 6s, 11s, ... durante los últimos 120 segundos, este comando encuentra:
Entonces, si realmente lo necesita en segundos, puede hacer algo como:
fuente
Similar a lo que sugirió Glenn, si desea encontrar todo modificado, digamos, en el tiempo durante el cual se ejecutó un proceso de instalación, podría ser más fácil hacer algo como:
Entonces no tienes que hacer el cálculo del tiempo; solo encuentras que las cosas cambiaron después del archivo de punto de control.
fuente
Si tiene una versión de find que no es compatible,
-mtime -60s
entonces una mejor solución esfuente
La forma más sencilla de hacer esto es:
La
-mtime -60s
opción, mencionada en una respuesta, no funciona en muchas versionesfind
, incluso en 2016.-newermt
Es una opción mucho mejor para nosotros. Puede analizar muchos formatos de fecha y hora diferentes.Un método alternativo que utiliza
mmin
es este:Es posible que esta opción no funcione para todas las
find
versiones.fuente
Si está monitoreando un directorio en busca de cambios en los archivos, probablemente desee usar inotify-tools en lugar de algún bucle de sondeo infinito.
fuente
Si su versión de
find
no acepta segundos o valores reales, como el mío, use-mmin
, pero especifique 0, y obtendrá todos los archivos modificados en menos de un minuto:fuente