SHELL: выход из скрипта, если DIRECTORY был изменен в течение последних 10 минут - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь просто проверить:

If Каталог был изменен в течение последних 10 минут, затем остановите скрипт. If Каталог не был изменен в течение последних 10 минут, затем Продолжить.

Ниже всегда возвращается True

if "`find "$DirName" -type d -mindepth 1 -mmin -10`"; then
    exit
fi

ИЛИ

find "$DirName" -type d -mindepth 1 -mmin -10 && exit

Также пытались сравнить stats и date +%y%m%d%s. Но, похоже, никуда не денется.

Может ли кто-нибудь указать мне правильное направление?

macOS Majove

1 Ответ

1 голос
/ 27 января 2020

Вы пытаетесь выполнить рекурсивный поиск в каталоге и определить, был ли изменен какой-либо файл в дереве (что является единственной причиной использования find), или вы просто хотите что-то вроде:

eval "$(stat -s "$DirName")"  # Set st_mtime to the mtime of the dir
if test "$(( $(date +%s) - $st_mtime ))" -lt 600; then
    exit  # mtime less than 10 minutes ago
fi

Хотя, наверное, чище пропустить eval и написать:

if test "$(( $(date +%s) - $(stat -f %m "$DirName") ))" -lt 600; then ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...