Date de création d'un fichier depuis un for
sbouli
Messages postés
208
Statut
Membre
-
sbouli Messages postés 208 Statut Membre -
sbouli Messages postés 208 Statut Membre -
Bonjour,
comment obtenir l'année de création (pas modification) d'un fichier au sein d'une boucle FOR du type :
for fich in `ls -1 /var/log/*.log* 2>/dev/null`
do
blabla
done
J'ai bien la variable fich qui contient le nom complet du fichier mais où sont les autres informations ???
Merci d'avance.
Stéphane
comment obtenir l'année de création (pas modification) d'un fichier au sein d'une boucle FOR du type :
for fich in `ls -1 /var/log/*.log* 2>/dev/null`
do
blabla
done
J'ai bien la variable fich qui contient le nom complet du fichier mais où sont les autres informations ???
Merci d'avance.
Stéphane
A voir également:
- Date de création d'un fichier depuis un for
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
- Fichier bin - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
4 réponses
grrr
j'aurais dû m'en douter ... mon problème est simple, sous postfix, dans les logs, l'année n'est pas écrite, conclusion si je me base sur les lignes de log pour savoir si j'ai traité le fichier ou pas ... je suis grillé en cas de début d'année ...
et je peux pas me baser sur les noms de fichiers à cause des rotations ....
.... je ne vois pas de solution ....
stéphane
j'aurais dû m'en douter ... mon problème est simple, sous postfix, dans les logs, l'année n'est pas écrite, conclusion si je me base sur les lignes de log pour savoir si j'ai traité le fichier ou pas ... je suis grillé en cas de début d'année ...
et je peux pas me baser sur les noms de fichiers à cause des rotations ....
.... je ne vois pas de solution ....
stéphane
L'année n'est pas écrite dans les logs, mais le fichier de log lui (le dernier en cours ou les archives (gz)) a une date "ls -l" (c'est un ELLE minuscule et non pas un UN)...
Hello,
En fait, les logs subissent une rotation sur 60 jours via logrotate, il semble que la date subit alors une modif (la date de création explose, et l'autre prend 2 jours de décalage).
Bon quoi qu'il en soit, je ne suis intéressé que par les logs de moins d'un an donc soit, l'année est l'année en cours soit l'année d'avant si le mois en cours est < au mois du log
Je me base donc pas sur la date du fichier.
Cependant pour mon petit cerveau, je voudrais savoir comment avoir la date du fichier dans la boucle :
for fich in `ls -1 /var/log/*.log* 2>/dev/null`
do
echo "le fichier en cours est ${fich} dont la date est ${....}
done
Merci d'avance !
En fait, les logs subissent une rotation sur 60 jours via logrotate, il semble que la date subit alors une modif (la date de création explose, et l'autre prend 2 jours de décalage).
Bon quoi qu'il en soit, je ne suis intéressé que par les logs de moins d'un an donc soit, l'année est l'année en cours soit l'année d'avant si le mois en cours est < au mois du log
Je me base donc pas sur la date du fichier.
Cependant pour mon petit cerveau, je voudrais savoir comment avoir la date du fichier dans la boucle :
for fich in `ls -1 /var/log/*.log* 2>/dev/null`
do
echo "le fichier en cours est ${fich} dont la date est ${....}
done
Merci d'avance !
ls -lc donne la date de création du fichier, pour autant qu'aucune commande qui modfie l'inode, telle que chmod ou chown n'ait été exécutée.
Mais bon, si je regarde la page de man :D'après tout ce que j'ai lu, la date de création d'un fichier n'est stockée nulle part. Mais bon j'ai peut être sauté une case... ;-))
man ls sur Solaris
-c
Uses time of last modification of the i-node (file created, mode changed, and so forth) for sorting (-t) or printing (-l or -n).