Знайте, если последний файл в папке старше 1 часа - PullRequest
0 голосов
/ 05 марта 2019

Я пробовал это:

if find filename -mmin +60; then echo banana; fi

, но, похоже, это не работает: в любом случае он повторяет банан.

Как я могу повторить банан, только если файлстарше 60 минут?

Ответы [ 3 ]

0 голосов
/ 05 марта 2019

Вы можете использовать как stat, так и date:

((($(date +%s) - $(stat -c +%X file)) < 3600)) && echo banana

date +%s показывает текущее время в формате эпохи.

stat -c +%X укажите время последнего доступа к файлу filename в том же формате. Используйте другие параметры, такие как %W, %Y соответственно для времени рождения и изменения.

0 голосов
/ 05 марта 2019

Попробуйте

find filename -mmin +60 -printf 'banana\n' -quit
0 голосов
/ 05 марта 2019

Превращение вышеприведенного комментария во что-то ответное: find дает ненулевой код выхода только в случае обработки ошибка ;пробег все еще успешен, даже если ваше условие не выполняетсяВам нужно подсчитать выходные строки поиска для этого файла, и если оно равно 1, ваше условие выполнено (если в каталоге, который вы сканируете, есть только один файл с этим именем; в противном случае измените -eq на -ge).

if [[ $( find filename -mmin +60 | wc -l ) -eq 1 ]]; then echo banana; fi 
banana
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...