118 votes

Trouver de manière récursive tous les fichiers plus récents qu'un moment donné

Étant donné un time_t :

  date -ur 1312603983
Sat  6 Aug 2011 04:13:03 UTC

Je recherche un one-liner bash qui répertorie tous les fichiers les plus récents. La comparaison doit tenir compte du fuseau horaire.

Quelque chose comme

 find . --newer 1312603983

Mais avec un time_t au lieu d'un fichier.

209voto

vadonka Points 1771

Vous pouvez trouver chaque fichier créé/modifié le dernier jour, utilisez cet exemple :

 find /directory -newermt $(date +%Y-%m-%d -d '1 day ago') -type f -print

pour tout trouver la semaine dernière, utilisez "il y a 1 semaine" ou "il y a 7 jours" tout ce que tu veux

65voto

Stefan Diabo Points 2745

Peut-être que quelqu'un peut l'utiliser. Trouvez tous les fichiers qui ont été modifiés dans un certain laps de temps de manière récursive, exécutez simplement :

 find . -type f -newermt "2013-06-01" \! -newermt "2013-06-20"

25voto

Jonathan Leffler Points 299946

C'est un peu détourné car touch ne prend pas une valeur brute de time_t , mais cela devrait faire le travail de manière assez sûre dans un script. (L'option -r date est présente dans MacOS X ; je n'ai pas revérifié GNU.) La variable 'time' pourrait être évitée en écrivant la substitution de commande directement dans le ligne de commande touch

 time=$(date -r 1312603983 '+%Y%m%d%H%M.%S')
marker=/tmp/marker.$$
trap "rm -f $marker; exit 1" 0 1 2 3 13 15
touch -t $time $marker
find . -type f -newer $marker
rm -f $marker
trap 0

19voto

rsanden Points 391

Étant donné un horodatage unix (secondes depuis l'époque) de 1494500000 , faites :

 find . -type f -newermt "$(date '+%Y-%m-%d %H:%M:%S' -d @1494500000)"

Pour saisir ces fichiers pour "foo":

 find . -type f -newermt "$(date '+%Y-%m-%d %H:%M:%S' -d @1494500000)" -exec grep -H 'foo' '{}' \;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X