В интересах хранения простых вещей я выполнил ежедневное задание крона, которое связывает вчерашние файлы журнала в один файл (например, yesterday.log), и на успехе удаляет их и затем выполненный logrotate к (ре) имя, и сожмите тот файл. Вы смогли принуждать logrotate в выполнение целого использования задачи sharedscripts
но я не думаю так, и я не напрасно тратил бы время, пытаясь понять это.
Вот подход, который использует то, что удар действительно управляет расширением на $PS1
протестировать, чтобы видеть если .
и $PWD
имейте тот же inode в подсказке:
PS1='$([[ $(stat -Lc%i $PWD 2>/dev/null) == $(stat -c%i .) ]] || echo "\[\e[1;31m\]PWD invalid or changed \[\e[m\]")'"$PS1"
Я не полагаю, что существует любой способ выполнить это только с регулярным Bash. Вы могли установить inotify
так, чтобы это смотрело бы данный каталог и затем уведомило бы пользователя, обычно по электронной почте, но существуют вероятные способы передать эти сообщения по каналу назад в оболочку/среду пользователя.
Но эти уведомления были бы широки в том смысле, что они просто прибудут к пользователям, когда ссылки были изменены/повреждены, они не будут контекстными, т.е. они не были бы отправлены только, когда пользователь был фактическим в этих упомянутых каталогах.
Терминал № 1:
$ mkdir $HOME/tst
$ inotifywait -mr $HOME/tst
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
Терминал № 2:
$ mkdir somedir
Терминал № 1:
/home/saml/tst/ CREATE,ISDIR somedir
/home/saml/tst/ OPEN,ISDIR somedir
/home/saml/tst/ CLOSE_NOWRITE,CLOSE,ISDIR somedir
Терминал № 2:
$ rmdir somedir
Терминал № 1:
/home/saml/tst/ DELETE,ISDIR somedir
/home/saml/tst/somedir/ DELETE_SELF