web-dev-qa-db-ja.com

特定のアプリケーションのターミナルからファイルを開く

ターミナルでxdg-openをよく使います。これにより、デフォルトのアプリケーションでファイルが開きます。ただし、別の(デフォルトではない)アプリケーションでファイルを開きたい場合があります。端末からこれを達成する方法はありますか?

(明らかに、一部のアプリケーションはファイルを引数として取ることができます、たとえばvlc /path/to/movie.mp3ですが、xdg-openに似た、すべての状況で機能するより一般的な方法を探しています。)

xdg-open- likeコマンドの利点は、ファイル/アプリケーションを開いた後にターミナルウィンドウを閉じることができることです。ただし、(たとえば)vlc /path/to/movie.mp3&を使用する場合は、ターミナルウィンドウを開いたままにする必要があります。

5
Sparhawk

xdg-openは、もちろんデフォルトのアプリケーションを使用するように設計されています。デフォルト以外のアプリケーションを使用するには、3つのオプションがあると思います。

1)通常どおりprogramname filenameと入力します。

2)Nautilusを右クリックし、open withを使用して、ターミナルの外でこれを行います。

3)ターミナルで独自のスクリプトを使用します。あなたが選択したいと思うかもしれないデフォルトプログラムの合理的に短いリストがあると仮定しましょう。

#!/bin/bash
read filename
myvar=$(zenity --list --text="Chose a non-default program" --column="Programs" firefox gedit)
$myvar filename &

これにより、ファイル名を指定してから、それを開くプログラムを選択できます。これは最小限の実装であるため、追加の作業が必要になる場合があります。しかし、試してみてください。

このアプローチにはlotの利点はないかもしれませんが、プロセスやオプションを制御して、ニーズに合わせて調整できます。

6
chaskes

「GnomeのWebブラウザ」(gnome-www-browser)や「Gnomeのテキストエディタ」(gnome-text-editor)などの擬似ソリューションがあります。ブラウザ(x-www-browser)とターミナルエミュレータ(x-terminal-emulator)を備えたXサーバーでも同じことが言えます。端末テキストエディタ用の「editor」もあります(nanovi、またはその他)。 update-alternatives行コマンドでそれらを構成できます。

しかし、実際の解決策はありませんでした。 xdg-openなどのアプリケーションを開くための汎用プログラムは、ユーザーがファイルを開きたい瞬間に使用したい唯一のアプリケーションではなく、デフォルトのアプリケーションでファイルを開くために作成されます。ファイルを開く前にデフォルトのアプリケーションを変更する以外にこれを行うことはできませんが、ユーザーフレンドリーではなく、デフォルトのアプリケーションを取得することもありません。

したがって、最適なソリューションは、一般的なソリューションを忘れて、使用する特定のアプリケーションと同じようにファイルを開くことです。

1
air-dex