Tester une date de fichier avec bash
j'essaie de tester l'âge d'un fichier créé (en secondes) avec bash dans un if
déclaration. J'ai besoin de la date de création, Pas de modification.
avez-vous une idée de comment faire cela, sans utiliser une commande comme find
grep
?
4 réponses
je crains de ne pas pouvoir répondre à la question pour le temps de création, mais pour la dernière modification vous pouvez utiliser ce qui suit pour obtenir le date d'époque, en secondes, car nom du fichierdernière modification:
date --utc --reference=filename +%s
Si vous pourriez alors quelque chose comme:
modsecs=$(date --utc --reference=filename +%s)
nowsecs=$(date +%s)
delta=$(($nowsecs-$modsecs))
echo "File $filename was modified $delta secs ago"
if [ $delta -lt 120 ]; then
# do something
fi
etc..
mise à Jour Plus elgant façon de le faire (encore une fois, l'heure de modification uniquement): Comment puis-je enregistrer bash si un fichier a été créé il y a plus de x fois?
Voici la meilleure réponse que j'ai trouvée pour le moment, mais c'est seulement pour le temps de modification :
expr `date +%s` - `stat -c %Y /home/user/my_file`