Вычислить разницу дат между последней измененной датой файла и СЕЙЧАС с использованием сценария оболочки

Я пытаюсь вычислить время, прошедшее с момента последнего обновления файла журнала.

Я предполагаю, что будут использованы следующие команды

lastUpdate=$(date -r myLogFile.log) now=$(date) 

Как я могу вычесть их и получить результат за несколько секунд?

  • Как сделать «если нет» в Bash без теста?
  • замените '_' на ',' в файле, который содержит список имен файлов
  • Когда нужно использовать полуточку между переменными окружения и командой
  • «. ~ / .bashrc "не устанавливает переменные, как ожидалось, в вызывающем скрипте
  • Выход из сценария оболочки, если некоторые дочерние процессы завершаются
  • Возможно ли зацикливание
  • Почему код выхода скрипта имеет другое значение, чем то, что возвращается?
  • Как проверить, установлен ли vim?
  • 4 Solutions collect form web for “Вычислить разницу дат между последней измененной датой файла и СЕЙЧАС с использованием сценария оболочки”

     lastUpdate="$(stat -c %Y myLogFile.log)" now="$(date +%s)" let diff="${now}-${lastUpdate}" 

    сравните два выхода, чтобы получить количество секунд между теперь и измененной датой

     stat -c %Y file vs date +%s 

    Ты почти там! Просто укажите date чтобы использовать формат, на котором вычисление легко.

     lastUpdate=$(date -r myLogFile.log +%s) now=$(date +%s) file_age=$((now - lastUpdate)) 

    Один лайнер:

    stat -c% Y / путь / в / файл | echo `expr $ (date +% s) – $ (cat)`

    Linux и Unix - лучшая ОС в мире.