J'aimerais qu'une commande Linux trouve les fichiers modifiés dans les dernières n
secondes.
Existe-t-il un script shell ou un autre outil que je peux exécuter à partir de l'interface de ligne de commande ou de l'interface graphique?
Utilisez la commande find comme celle-ci:
find . -name "*.txt" -mtime -60s
Pour trouver tous les *.txt
fichiers modifiés au cours des 60 dernières secondes.
find: missing argument to `-mtime'
. Cependant, je peux obtenir le comportement souhaité en utilisant -mmin et un argument décimal. Je n'ai trouvé aucune référence dans la page de manuel pour trouver pour l'utilisers
comme argument.-mtime
. "60s" n'est pas non plus une option valide dans POSIX ou GNU find. L'argument de-mtime
est un nombre qui spécifie le nombre de périodes de 24 heures précédant la modification d'un fichier.La solution avec mtime spécifiant les secondes ne fonctionne pas sur mes systèmes linux qui utilisent
find --version
==find (GNU findutils) 4.4.2
.J'obtiens l'erreur suivante:
Cependant, je peux utiliser
-mmin
(pour modifié dans les dernières minutes m), et peut-il prendre un argument décimal; Par exemple, ce qui suit trouve les fichiers modifiés au cours des 30 dernières secondes.Ainsi, par exemple; en créant les fichiers modifiés en dernier 1s, 6s, 11s, ... il y a 120 secondes, cette commande trouve:
Donc, si vous en avez vraiment besoin en quelques secondes, vous pouvez faire quelque chose comme:
la source
Semblable à ce que Glenn a suggéré, si vous voulez que tout soit modifié, par exemple, pendant la durée d'un processus d'installation, il pourrait être plus facile de faire quelque chose comme:
Ensuite, vous n'avez pas à faire le calcul du temps; vous trouvez juste que les choses ont changé après le fichier de point de contrôle.
la source
Si vous avez une version de find qui ne prend pas en charge,
-mtime -60s
alors une meilleure solution estla source
La façon la plus simple de le faire est:
L'
-mtime -60s
option, mentionnée dans une réponse, ne fonctionne pas sur de nombreuses versions defind
, même en 2016.-newermt
est une bien meilleure option pour nous. Il peut analyser de nombreux formats de date et d'heure différents.Une autre méthode utilisant
mmin
est la suivante:Cette option peut ne pas fonctionner pour toutes les
find
versions.la source
Si vous surveillez un répertoire pour les modifications des fichiers, vous voudrez probablement utiliser inotify-tools au lieu d'une boucle d'interrogation infinie.
la source
Si votre version de
find
n'accepte pas les secondes ou les valeurs réelles, tout comme la mienne, utilisez-mmin
, mais spécifiez 0, et vous obtiendrez tous les fichiers modifiés en moins d'une minute:la source