Comment obtenir le temps depuis le dernier changement de fichier en secondes avec bash?

J'ai besoin d'obtenir le temps en quelques secondes depuis le dernier changement du fichier.
ls -l

Ne montre pas cela.
Invité:

Georges

Confirmation de:

Ventes GNU
date

a une option
-r

Imprimer la date du dernier changement de fichier au lieu de la date actuelle.
Et nous pouvons utiliser le spécificateur de format
%s

, Pour obtenir le temps en quelques secondes
Ce qui est pratique pour calculer la différence de temps.


lastModificationSeconds=$/date +%s -r file.txt/
currentSeconds=$/date +%s/


Et puis vous pouvez utiliser un contexte arithmétique pour calculer la différence, par exemple:


//elapsedSeconds = currentSeconds - lastModificationSeconds//
# or
elapsedSeconds=$//currentSeconds - lastModificationSeconds//


Vous pouvez également calculer et imprimer des secondes expirées directement sans variables temporaires:


echo $//$/date +%s/ - $/date +%s -r file.txt///


Malheureusement, la mise en œuvre BSD
date

/Par exemple, dans Mac OS X/ ne supporte pas le drapeau
-r

. Pour obtenir les dernières secondes de modification, vous pouvez utiliser la commande à la place.
stat

, Comment d'autres réponses offertes.
Dès que vous le faites, rest Les procédures seront les mêmes pour calculer les secondes dernières secondes.

Gilles

Confirmation de:

Je connais la balise Linux, Mais la syntaxe
stat -c

ne fonctionne pas pour moi sur OSX. Ça marche vraiment ...


echo $// $/date +%s/ - $/stat -f%c myfile.txt/ //


Et comme une fonction appelée Nom du fichier:


lastmod//{
echo "Last modified" $// $/date +%s/ - $/stat -f%c "$1"/ // "seconds ago"
}

Camille

Confirmation de:

DANS BASH Utilisez cette valeur dans quelques secondes depuis le dernier changement:


expr `date +%s` - `stat -c %Y /home/user/my_file`

Pour répondre aux questions, connectez-vous ou registre