1

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

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

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

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

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

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

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

Спасибо.

1 ответ1

1

Нет, для такого не существует X-хуков. Вам нужно будет сделать что-то конкретное для каждого приложения, так как все они будут обрабатывать доступ к файлам по-разному.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .