2013-06-26 6 views
0

Мне нужен скрипт, который вычисляет, как давно файл был изменен. Это могут быть дни назад или всего несколько минут назад. Я уже смог получить дату и время изменения из команды stat. Я сохранил эти данные в двух разных переменных. Теперь мне нужно рассчитать разницу между этой датой и временем с «сейчас». Я могу найти множество примеров получения разницы между двумя датами или временем. Но что, если мое время вернется больше, чем через день. ex. modif дата 2013-06-25 23:55:00 сейчас 2013-06-26 00:10:08 Если я рассчитываю разницу между этими двумя, мне нужен ответ 15 минут и 8 секунд. Может ли кто-нибудь мне помочь?вычислить, как давно файл был изменен

ответ

0

Сделайте stat дайте вам время в секундах, а затем вычтите значения. Разделите на 60, если вы хотите минут, используйте modulo 60, чтобы получить остаток за секунды.

+0

Это решение. Я собирался сделать это в два этапа. Сначала получите время и дату изменения со статусом, а затем я попытался поставить эту дату в формате «секунды с тех пор ...» Там я потерпел неудачу. Большое спасибо ! – pistach

1

Ответы Йенса на работу, вот пример.

#!/bin/bash 

MOD_TIME=`stat -c %Y thisfile.txt` 
RIGHTNOW=`date +%s` 
HOW_LONG=`expr $RIGHTNOW - $MOD_TIME` 
NUM_MINS=`expr $HOW_LONG/60` 
NUM_SECS=`expr $HOW_LONG % 60` 

echo "$NUM_MINS minutes, $NUM_SECS seconds since modified." 
+0

Спасибо за код. Прекрасно работает! – pistach