Je veux obtenir tous les fichiers entre 2 dates avec ce format: AAAA-MM-JJ HH: mm
J’ai aussi quelques contraintes: je ne peux pas écrire des fichiers même dans / tmp, et je ne peux pas utiliser find --newermt
car c’est un ancien serveur.
J’ai essayé d’utiliser awk sans succès:
ls -l --time-style=long-iso | awk '{ if (mktime(gensub ("-", " ", $6) " " gensub (":", " ", $7) " 00") >= mktime(gensub ("-", " ", gensub (":", " ", "2014-08-26 12:30")) " 00") && mktime(gensub ("-", " ", $6) " " gensub (":", " ", $7) " 00") <= mktime(gensub ("-", " ", gensub (":", " ", "2014-08-26 12:30")) " 00")) print $8 }'
Merci d’avance !
Je verrais si vous pouvez utiliser stat
avec un format approprié. Sur mon système (Linux), imprimez le nom du fichier et le mtime avec
stat --format=$'%n\t%y' *
Ensuite, pour filtrer en fonction du mtime:
stat --format=$'%n\t%y' * | awk -F"\t" -v from="2014-08-01 00:00" \ -v to="2014-09-01 00:00" 'from <= $NF && $NF <= to {NF--; print}'
Voulez-vous dire qu’il existe une ancienne version de «trouver» ou que vous n’avez pas du tout de «recherche»?
Si vous avez trouvé, mais c’est une ancienne version, alors il y a un autre moyen que ‘-newermt’:
Comment utiliser ‘find’ pour rechercher des fichiers créés à une date spécifique?
La troisième réponse montre comment créer deux fichiers avec les horodatages requirejs. Ensuite, utilisez:
find / -newer /tmp/t1 -and -not -newer /tmp/t2