Utilisation de find -mmin pour rechercher des fichiers avec un temps de modification dans le futur


9

je peux utiliser

find . -mmin -5

pour trouver les fichiers modifiés au cours des 5 dernières minutes. Cependant, si j'essaye de trouver des fichiers avec un temps de modification dans le futur en donnant un nombre négatif findrefuse de le faire:

find . -mmin --1

Existe-t-il un moyen de donner le temps de modification future au Linux standard find?

Réponses:


9

Pour rechercher des fichiers modifiés au moins 5 jours à l'avenir, utilisez:

find . -newermt "5 days"

La syntaxe de la spécification d'heure correspond à celle de date -d. Voir man findpour plus d'informations sur le commutateur nommé -newerXYpour plus d'informations.

Il n'est pas possible d'utiliser par exemple -mminpour ce faire. Il a été signalé comme un bug contre GNU find , et a été résolu en implémentant -newerXYdans findutils 4.3.3 (~ 2007) comme je l'ai montré ci-dessus.


Apparemment, ce n'est pas GNU find qui a été utilisé, mais BusyBox.

Vous devriez ensuite pouvoir créer un fichier temporaire avec touch -det une date dans le futur, puis utiliser le -newercommutateur pour, findpar exemple:

touch -d "+5 days" tmpfile
find . -newer tmpfile

BusyBox touchne prend pas en charge ce format de date, mais le principe est le même et ses findsupports -newer. La création du fichier de référence avec une date correcte reste un exercice pour le lecteur (toujours pratique à écrire).


Merci. Mon problème est que ma recherche est une ancienne recherche BusyBox intégrée et non une recherche binutil. Apparemment, la méthode Linux standard ne fonctionne pas ici. :(
— Muxecoid

@Muxecoid: J'ai mis à jour ma réponse avec quelques remarques BusyBox.
— Daniel Andersson

Cela m'a juste sauvé des ennuis sur une nouvelle machine où j'avais fait quelque chose dans le futur dix heures par accident (décalage du fuseau horaire appliqué à une horloge matérielle déjà décalée) et après avoir corrigé l'horloge, un configurescript s'est plaint des choses à venir (par un environ une heure et demie): find . -newermt '1 hour' | xargs touch -d '-9 hours'et je peux continuer. :-)
— Chris Morgan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.