場合によってxdg-open somefile.ext
は、ターミナルセッションでアクセスしてから後で開いたアプリケーションやビューアを閉じることができるようにしたいです。xdg-close
既存のウィンドウを調べて、どのレポートが開いているかを確認し、アプリケーションを閉じるかsomefile.ext
終了するような機能があることを望みました。
別の名前で似たものがありますか?
答え1
開いているファイルが削除されていないと仮定すると、次のコマンドはファイルが開いているすべてのアプリケーションを強制的に閉じます。
fuser -k -TERM FILE
FILE
そのファイルの名前に変更します。
こんなこともあるので参考にしてください非常に注意しないと危険です。たとえば、誤ってホームディレクトリを渡した場合、システムの現在のログインセッション(グラフィックとテキスト)の両方が終了し、ほとんどのバックグラウンドプロセスが終了します。
どのアプリケーションがファイルを開いているかを知っていると仮定すると、これを行うより安全なデスクトップ環境関連の方法がありますが、ここでは良いアドバイスをするのに十分なことを知りません。
これでコマンドがない理由は次のとおりですxdg-close
。
xdg-open
ユーザーが特定のファイルを開こうとすると、ファイルマネージャやWebブラウザなどのツールが、デフォルトのアプリケーションが呼び出されることを保証できるように存在します。つまり、ファイルを開くために使用される内容を変更しようとすると、システム内のすべてのアプリケーションを通過する必要はありませんが、1つの場所でデフォルト値を設定できますが、アプリケーションはそうではありません。彼らが望むときにそれを使用する必要はありません。他のアプリケーションで何かを開きたい場合は、使用しているデスクトップ環境に注意してください。コマンドラインから手動で呼び出すことはできますが、その目的のために設計されているわけではありません。
オートメーション閉鎖特定のファイルを開くアプリケーションはユーザーフレンドリーではありません。あなたのWebブラウザには、ダウンロードしたPDFを表示するために開いたPDFビューアを閉じる権限がありません。しかし、これを行うためにツールが必要なのはなぜですか?また、デスクトップ環境は、どのアプリケーションがどのファイルを開いているかを追跡しません(OSは、どのプロセス(アプリケーションと1:1にマップされていない)がどのファイルを開いているかを追跡します)。したがって、実際に簡単なことはありません。これを達成する方法も大丈夫です。
その価値があるため、xdg-open
コマンドとして存在する唯一の理由は、DBusがFreeDesktop.org仕様の一部になる前に開始されたためです。それ以外の場合は、不要なバックグラウンドプロセスによって提供される別のDBus API呼び出しであることはほぼ確実です。