42 votes

Comment trouver des fichiers entre deux dates en utilisant "find"?

J'ai un compte email qui a dépassé les 60 Go d'emails, et actuellement j'ai beaucoup de difficulté à utiliser un client email pour archiver les emails de l'année dernière (2011).

Par le biais du terminal, j'essaie d'utiliser find pour localiser les fichiers entre le 01-01-2011 et le 31-12-2011, mais en vain.

Comment puis-je trouver des fichiers entre deux dates ?

Si pertinent, l'objectif final sera de créer un script qui déplacera chaque fichier trouvé, correspondant à l'intervalle de dates, vers un dossier.

69voto

Eric Leschinski Points 2093

Rechercher des fichiers Bash entre deux dates :

find . -type f -newermt 2010-10-07 ! -newermt 2014-10-08

Renvoie une liste de fichiers ayant des horodatages après le 2010-10-07 et avant le 2014-10-08

Rechercher des fichiers Bash à partir de 15 minutes auparavant jusqu'à maintenant :

find . -type f -mmin -15

Renvoie une liste de fichiers ayant des horodatages après 15 minutes auparavant mais avant maintenant.

Rechercher des fichiers Bash entre deux horodatages :

find . -type f -newermt "2014-10-08 10:17:00" ! -newermt "2014-10-08 10:53:00"

Renvoie des fichiers avec des horodatages entre 2014-10-08 10:17:00 et 2014-10-08 10:53:00

24voto

Vous pouvez utiliser ce script:

#!/bin/bash
for i in $(trouver Votre_Repertoire_Mail/ -newermt "2011-01-01" ! -newermt "2011-12-31"); do
  mv $i /repertoire_emails_deplaces/
done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X