La commande find sous Linux est utilisée pour rechercher des fichiers et dossiers en fonction de différents paramètres. Ces paramètres peuvent être le nom du fichier , taille , type de fichier , etc.
[ Vous pourriez également aimer :Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux ]
L'un de ces paramètres est l'horodatage du dossier. Sous Linux (et tous les systèmes de fichiers basés sur Unix), il existe 3 horodatages maintenu pour chaque fichier :
- Heure de la dernière modification
- Heure du dernier accès
- Heure du dernier changement de statut (c'est-à-dire lorsque les métadonnées du fichier, telles que les autorisations, sont modifiées)
Voyons comment utiliser rechercher pour rechercher des fichiers en fonction de chacun de ces horodatages .
Rechercher les horodatages de fichiers sous Linux
Tout d'abord, nous pouvons exécuter le 'stat ' sous Linux pour obtenir tous ces horodatages pour un fichier. Par exemple pour un fichier avec le nom ‘stat ', exécutez :
$ stat tmp
Rechercher des fichiers en fonction de l'horodatage
Maintenant, pour trouver des fichiers en fonction de l'horodatage , nous utilisons l'argument '-newerXY'
de trouver depuis la page de manuel.
man find
Ainsi dans l'argument '-newerXY'
, nous pouvons avoir X en tant que un , c , ou m , respectivement pour les heures du dernier accès, du dernier changement d'état et de la dernière modification, et Y comme t , afin que le prochain argument soit un horodatage chaîne.
Remarque :L'heure de naissance, c'est-à-dire l'heure de création d'un fichier n'est pas conservée sous Unix systèmes de fichiers basés
Pour généraliser, la commande à exécuter ressemble à ceci :
find <directory_path> -newer<a/m/c>t ‘<timestamp>’
Ici, le format de l'horodatage devrait être :‘AAAA-MM-JJ HH:MM:SS’ .
Essayons ceci sur un dossier avec peu de fichiers et seulement deux fichiers ayant accédé, modifié et changé de statut après un temps spécifié.
find . -newerat ‘2021-02-19 06:34’ find . -newerct ‘2021-02-19 06:34’ find . -newermt ‘2021-02-19 06:34’
Vérifiez avec ‘stat’ si les horodatages des deux fichiers sont en effet supérieurs à la durée spécifiée.
stat tmp2 tmp3
Conclusion
Nous avons appris à utiliser le '-newerXY'
l'argument de la commande find pour rechercher des fichiers en fonction de l'horodatage .
Notez que vous pouvez également utiliser un autre fichier pour un timestamp de référence au lieu de spécifier explicitement l'horodatage , auquel cas le ‘t’ de l'argument peut être ignoré.
Merci beaucoup d'avoir lu et faites-nous part de vos réflexions dans les commentaires ci-dessous !