GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver des fichiers basés sur l'horodatage sous Linux

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 :

  1. Heure de la dernière modification
  2. Heure du dernier accès
  3. 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 !


Linux
  1. Comment convertir des fichiers en codage UTF-8 sous Linux

  2. Comment trouver les fichiers modifiés récents ou d'aujourd'hui sous Linux

  3. Comment trouver un fichier sous Linux

  4. Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

  5. Comment trouver des fichiers au format dos dans un système de fichiers Linux

Comment trouver des fichiers dans Debian 10

Autorisations Linux - Comment trouver les autorisations d'un fichier

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Comment trouver des fichiers modifiés au cours des dernières 24 heures sous Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Comment compresser un fichier sous Linux