#linux #shell #filesystems #boost-filesystem
#linux #оболочка #файловые системы #boost-файловая система
Вопрос:
В системе UNIX все является файлом; если что-то не является файлом, это процесс. это преимущество файловой системы Linux, но у меня здесь вопрос!!
как я могу определить, был ли файл создан, изменен или удален пользователем или программой?
Я пытаюсь сделать это с помощью inotify, но не работает с версией ядра 3.4 в дистрибутиве openwrt
Спасибо
Ответ №1:
Вы пробовали использовать команду stat? Если вы не можете использовать inotify, то вы, вероятно, не сможете использовать inotifywait, поскольку он использует интерфейс inotify.
Вы можете получить информацию о создании и модификации файла непосредственно из его выходных данных.
Удаленная часть (когда пользователь или программа удаляет файл) не может быть доступна напрямую. Unix предоставляет временные метки atime, mtime и ctime.
Atime — это время последнего доступа к содержимому. Ctime — это время последней модификации метаданных inode. Mtime — это время последнего изменения содержимого.
Таким образом, к удаленному времени нельзя получить прямой доступ. Вы можете проверить, удален ли файл, по временным меткам каталога, в который был включен файл.
Комментарии:
1. она может обнаруживать изменение файла в режиме реального времени? это означает, что если файл изменен, он отправляет сигнал скриптам, чтобы уведомить его об изменении?
2. @Anis_Stack простого способа получать уведомления не существует. Я думаю, вы можете написать несколько сценариев, которые будут выполнять команду stat, и использовать некоторые reg exps для захвата измененного времени