Conversions de dates en ksh
Le
gimae
Bonjour,
Il m'est demandé de lister tous les fichiers d'un répertoire qui ont été
créés entre une date de début et une date de fin (qui peut être la date
courante).
Je dois utiliser pour cela une string contenant la date et l'heure: jour,
mois, année, heure, minute, seconde.
La commande find permet de retrouver des fichiers créés depuis un nombre de
minutes donné grâce à aux options -[acm]min (Si vous connaissez une autre
solution, je prends) mais ça ne suffit même pas puisque ma date va jusqu'à
la seconde et en plus il faudrait coder la conversion de la string en
secondes. Les quelques approches de solutions que j'ai trouvées sur le net
utilisent perl mais je cherche à faire la manip en ksh, mais comment ?
Merci pour toute aide
Il m'est demandé de lister tous les fichiers d'un répertoire qui ont été
créés entre une date de début et une date de fin (qui peut être la date
courante).
Je dois utiliser pour cela une string contenant la date et l'heure: jour,
mois, année, heure, minute, seconde.
La commande find permet de retrouver des fichiers créés depuis un nombre de
minutes donné grâce à aux options -[acm]min (Si vous connaissez une autre
solution, je prends) mais ça ne suffit même pas puisque ma date va jusqu'à
la seconde et en plus il faudrait coder la conversion de la string en
secondes. Les quelques approches de solutions que j'ai trouvées sur le net
utilisent perl mais je cherche à faire la manip en ksh, mais comment ?
Merci pour toute aide

Poser une question


Pour la conversion, tu peux utiliser date...
date -d 'chaine' +'format de sortie'
--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Il me semble qu'on peut utiliser des minutes fractionnaires (0.5 vaut 30
secondes).
Erwan a répondu dans un autre message.
-- Alain.
J'ai le regret de t'informer que ce n'est tout simplement pas possible (sous
Unix en tout cas): la date de *création* d'un fichier n'est pas conservée dans
les attributs de ce dernier.
Seule sont conservées les dates de
* modification du contenu (mtime)
* dernier accès (atime)
* modification des attributs (ctime)
Ref: http://linux.die.net/man/2/stat
--
Gilles Pion
le 08/03/2011 à 19:44, gimae a écrit dans le message
Comme il a été dit, c'est la date de modification qu'il faut prendre en
compte. Pour la solution, tu peux créer deux fichiers avec la commande
touch aux dates que tu souhaites et utiliser l'option -newer de find
pour faire la recherche.
--
Benoit Izac
Oui je me suis mal exprimée, je pense que le mtime devrait suffire.