編集用にファイルを自動的に復号化し、ファイルを閉じた後に暗号化する bash スクリプトを作成しています。ファイルの種類は、プレーンテキスト、オフィス文書など、任意です。私は Linux Mint with Mate を使用しています。
私は立ち往生しています:ファイルがアプリケーションで閉じられているかどうかを確実に検出できないため、スクリプトはファイルを暗号化し、復号化されたバージョンを削除できます。
スクリプトの最初のバージョンでは、単純に vim をテキスト ファイルで使用していました。スクリプトはそれを直接呼び出していて、vim が閉じられるまでそれ以上進んでいませんでした。他のファイルでもできるようにしたいので、次のことを試しました。
xdg-open: ファイル タイプに関連付けられたアプリケーションを呼び出した直後に終了します。したがって、スクリプトは続行され、役に立ちません。
関連するアプリを呼び出すための xdg-open の変更された関数: 現在のスクリプト内で実行されるため、プログラムの終了が表示されます。アプリケーションがまだ実行されていない場合にのみ機能します。完了している場合は、新しいプロセスが終了し、スクリプトが続行されます。
だから私が今やろうとしているのは、すでに実行中のアプリケーションでそのファイルが閉じられたことを何らかの形で監視することです。現在、プルマ/gedit と inotifywait を試しています。どちらも機能しません-ファイルが開かれた直後に、CLOSE_NOWRITE、CLOSEイベントを検出します。
さまざまなアプリケーション用の特定のフックなしでこれを検出することはまったく可能ですか? おそらくいくつかのXフック?
ありがとうございました。