Mac OS Xの「open」コマンドと同等のLinux [終了]


214

Mac OS Xの「open」コマンドは、コマンドラインで非常に便利です。「man open」から:

このopenコマンドは、ファイルのアイコンをダブルクリックした場合と同じように、ファイル(またはディレクトリやURL)を開きます。アプリケーション名が指定されていない場合、LaunchServicesによって決定されたデフォルトのアプリケーションが、指定されたファイルを開くために使用されます。

つまり、デフォルトのPDFビューアでPDFファイルを開きたい場合(おそらくプレビューになる可能性があります)、必要なのは次のことだけです。

open my.pdf

ただし、Linuxでは、コマンドラインからPDFファイルを開くために、デフォルトのPDFビューアが、たとえば「evince」(誰が推測したのか??)

evince my.pdf

では、Linuxコマンドラインに 'open'コマンドに相当する単純なものはありますか?

ありがとう!


6
たぶん、この質問はsuperuser.comに移動する必要がありますか?
quazgar 2013年

1
スーパーユーザーは不適切と思われます-「通常のユーザー」または「他のアプリケーションをスクリプト化したいプログラマ」、つまり自動化のためのStackOverflowはありますか?
Krazy Glew 2016

アスクブントゥが合うかもしれません。
Gopherkhan 2017

回答:


238

あなたは試すことができxdg-openます、ほとんどのLinuxディストリビューションはそれを持っています。それはあなたのファイルのデフォルトの関連付けられたアプリを開きます。

FYI https://portland.freedesktop.org/doc/xdg-open.html


13
openただし、これとの大きな違いは、ファイル/アプリがバックグラウンドで開かれないことです。Linuxアプリは非常におしゃべりであるように見え、(実際には何も問題がなかったとしても)診断と警告の複数行を端末に出力することがよくあります。私は通常xdg-open <file> &> /dev/null &代わりに何かをしなければなりません。この点でxdg-openより良いものはありますか?
スアン

13
@Suan:アプリを起動するとすぐにターミナルで作業を継続できるように、ターミナルから切り離された「バックグラウンド」でアプリを開きます。したがって、トレーリング &は必要ありません。「複数行の診断」については、アプリ自体からのものであり、からのものではありませんxdg-open。出力が必要&> /dev/nullない場合は、evince直接使用する必要があるため(OPの例)、苦情は無効になります。xdg-open確かに行く方法です。
MestreLion 2012

15
@MestreLion Macを開いた結果、アプリケーションの出力がターミナルにエコーされないため、苦情が完全に無効になるとは思いません。
Max Nanasy 2012年

7
@MaxNanasy:出力がアプリケーションからのもので、それがないxdg-open場合のせい彼らはおしゃべりです。そして、そのようなメッセージを抑制することは、xdgではなく、ユーザーの選択であるべきです。ですから、「より良い」ものを求めるのは無効な不満ですxdg-open。Macのは次の場合にも、open出力それらのメッセージに何のオプションを持っていない、私は言うだろうopenはるかに悪いよりもxdg-open、ファイルを起動するには、コマンドラインを使用するときは、通常はそうでない場合は、なぜ単にファイルをダブルクリックしていない(つまり出力に興味を持っていることから、 Nautilusのようなブラウザで?)
MestreLion '16

12
@MestreLion苦情が取るに足らないものであると主張することもできますが、alias open='xdg-open &>/dev/null'(望ましいのはxdg-open自体からのエラー(起動されたプログラムだけではなく)も沈黙するため望ましくない)からです。
Max Nanasy 2012年

76

あなたが探している同等のものはでxdg-open、OS Xのopenコマンドと同じように使用できます。例えば:

xdg-open ~/Documents/Chubby_Bubbies.odt

ただし、これをすばやく正確に入力するのは非常に困難です。代わりに、xdg-openのエイリアスを作成する必要があります。これにより、プロセスが大幅に高速化されます。

もちろん、エイリアスしてopenOS Xに一致させることもできます(好きなものを選択できます)が、個人的には、]速度上の理由から、ショートカットに右角かっこ()を使用しています。これを使用するには、.bashrcファイルに以下を追加します。

alias ']'='xdg-open'

次に、リソースを開くには、次の例のように使用します。

] www.google.com
] file.txt
] ~/Pictures
] ssh://myserver.local/home/jeremy

また、これにより、現在のディレクトリでファイルブラウザ(Nautilusなど)を開くことができます。

] .

経験から、上記のショートカットには1文字のエイリアスが最適です。結局のところ、目標は効率です。また、戻ってOS Xで同じエイリアスを作成することもできます。これは、読者への課題として残しておきます。:-)


26
LinuxとMacの両方で一貫性を持たせるために、「open」から「xdg-open」へのエイリアスを作成しました。
Adam Byrtek、2009年

それは良いことですが、素晴らしいことではありません。
ソリン2012年

18
@sorinそれは私のせいに聞こえるようにしようとしていますか?
Jeremy Visser、2012年

7
@sorin:xdg-openファイルのシステムのデフォルトアプリケーションを開きます。あなたの場合、.urlファイルはgeditで開くように設定されています。これを変更する場合は、Nautilusでファイルを右クリックし、[プロパティ]> [アプリケーションから開く]に移動してデフォルトのアプリケーションを変更すると、xdg-openそれに応じて機能します。
MestreLion 2012

ここに私が作った要点があります、最初のコメントの「Altogether」セクションの下にコマンドをコピーして貼り付けて実行するだけです。
ozanmuyes 2017年

14

私はこれを自分で整理したので、自分がどのようにしたかを書き留めようと思いました。これは、スアンの質問に特に関連しています。これらの手順では、「open」と入力するだけで、不要なメッセージに覆われた端末を使用できません。

スクリプトを作成open中に~/bin、コンテンツだけです。

xdg-open "$1" &> /dev/null &

スクリプトを保存して閉じ、「source .profile」(または該当する場合は.bash_profile)と入力します。つまり、「open Music」と入力すると、nautilus GUIで音楽フォルダが開き、端末に何も入力しないでください。


エイリアスと変な場所とは何ですか?スクリプト自体openを呼び出して、PATH(通常は$HOME/bin/open)に入れます
tripleee

私のマシン(ubuntu 11.10)で、 'open'というスクリプトをパスに追加し、/ bin / openで上書きされるようにしようとすると、だから私はエイリアスなしであなたの方法を機能させる方法を見つけることができません。
Anake

トリックは、PATHよりも前にあるディレクトリに独自のスクリプトを置くことです/bin。慣例により$HOME/bin、パスがある場合は、システムディレクトリの前のPATHの最初に追加されます。一般的に、これはあなた.profileまたは同様の人によって行われます。たとえば、.profileUbuntu のデフォルトはまさにこれを行います。
tripleee

2
出力のリダイレクト先/dev/nullは少し気まぐれです。おそらく、出力を$HOME/.xsession-errors何かにリダイレクトして、トラブルシューティングが必要になった場合に診断が完全に失われないようにすることができます。
tripleee

1
@efdee:すべての変数を適切に引用することは良いプログラミング方法であり、bashスクリプトでは不可欠です。これはとは関係ありませんxdg-open。これはシェルの問題です。
MestreLion 2012

11

従来、「see」コマンドを使用できます。run-mailcapを使用するだけです。これはGnomeやXなどがなくても機能します。

man see

3
問題は、run-mailcap(そしてその多くのエイリアスが)別の(そしてひどく時代遅れの)アプリ関連付けデータベースを使用していることです。たとえば、私のシステムで.mp3は、VLCで曲が正しく開き.txtますが、ファイルは(geditではなく)少ないファイルで開き、ファイルを開く.pdfことができません。(エラー:タイプ「application / pdf」の「ビュー」mailcapルールが見つかりません)
MestreLion

私が言ったように、それは各システムに依存します。アプリケーションをrun-mailcap認識できる方法で登録するアプリケーションはほとんどありません。xdg-open内部的にgvfs-open(UbuntuのようなGnomeシステムで)使用します。これは、さらに多くのアプリケーションが使用するxdgのmime-database仕様を使用します。
MestreLion 2012

50ページ以上のPDFを開いたgimp。私は固執しxdg-openます。
user1717828

lessx''Dでtxtファイルを開く
Timo

4

gnome-open


7
gnome-openは非推奨になりました。さらにxdg-open、ユーザーがGnomeを使用していた場合は内部ですでに使用されていました(現在はを使用していますgvfs-open
MestreLion

2

MIMEが正しく設定されている場合は、を使用できますmimeopen。いくつかの便利なオプションがあるので、manページをチェックしてください。


1
この答えが拡張されればいいのですが。私はこれがどのように機能するかを見たいと思います
Magnus

-3

Gnomeデスクトップ環境では、次のコマンドを使用します。

nautilus `pwd` &

これは「オープン」に似ています。Macのコマンド


11
この回答には複数の問題があります:A)ユーザーの要求に応じて、ファイルではなく現在のディレクトリを開きます。B)." pwd"の代わりに使用できますC)pwdファイルを変更する場合、ユーザーはNautilusを開いた後にEnterキーを押す必要がありますD)ファイルを開くため nautilusを最初に開くことは非常に間接的な解決策です。
MestreLion
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.