Автоматическое шифрование / дешифрование файлов: обнаружение, что файл закрыт в приложении Mate / Gnome

600
Queeq

Я пишу сценарий bash, чтобы автоматически расшифровывать файл для редактирования и шифровать его после закрытия файла. Тип файла может быть любым: обычный текст, офисный документ и т. Д. Я работаю на Linux Mint с Mate.

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

Первая версия скрипта просто использовала vim с текстовыми файлами. Скрипт вызывал его напрямую и не шел дальше, пока Вим не закрылся. Теперь, когда я хочу сделать это с другими файлами, я попробовал следующее:

xdg-open: выходит сразу после вызова приложения, связанного с типом файла. Таким образом, сценарий продолжается и не приносит пользы.

Модифицированная функция xdg-open для вызова связанного приложения: запускает его внутри текущего скрипта, так что теперь я вижу выход из программы. Работает, только если приложение еще не запущено. Если это так, то новый процесс завершается, и сценарий продолжается.

Итак, что я сейчас пытаюсь сделать, так это посмотреть, как этот файл был закрыт в уже запущенном приложении. В настоящее время экспериментирую с pluma / gedit и inotifywait. Он также не работает - сразу после открытия файла он обнаруживает событие CLOSE_NOWRITE, CLOSE.

Можно ли вообще обнаружить это без специальных хуков для разных приложений? Возможно, некоторые х крючки?

Спасибо.

1

1 ответ на вопрос

1
iain

No, there are no X hooks for something like this. You would need to do something specific for each application as they will all handle file access differently from each other.

Похожие вопросы