「アプリケーションで開く」がアプリの非常に多くのインスタンスを表示するのはなぜですか?[複製]


17

ファイルを選択して右クリックして[開く]オプションを使用すると、そのファイルを開くための最も可能性の高いアプリケーションのリストが表示されますが、私の場合、10.9.5を実行すると、特定のファイルを開くための各推奨アプリケーション-添付のスクリーンショットを参照してください。どうしてこれなの?これをアプリごとに1つのインスタンスに減らす方法はありますか?もしそうなら、どのように?

ここに画像の説明を入力してください



マイク、私はあなたの監視への勤勉さを賞賛しますが、私の質問は疑惑の複製よりもはるかに明確です。ビューの量は、その有効性を証明しています。タイトルだけに基づいて、それが同じ主題であることさえ決して知りません。
fmz 14年

私たちは、問題を再度説明し、すべての答えのために1か所を指すときに、常に質問を閉じます。あなたの質問が問題の良い明確な言い回しではなかったなら、私はそれをリンクした後に完全に削除したでしょう。起動サービスを修正する方法についてのより良い標準的な答えを私たちに指摘できるかどうか、お気軽に編集するか、メタでお尋ねください。それは長い間存在しているものであり、私はそれがすぐにいつでも変わるとは思わない。
bmike

そして、いつものように、何かがモデレートされた理由がわからない場合や、現在の状況とは異なる結果を出したい場合は、Ask Different Metaで質問してください。多くの場合、スレッドに目を向けると、誰もが助けになります-私も含めます。フィードバックをお寄せいただきありがとうございます。
bmike

回答:


15

LaunchServicesを再構築して、OS Xの[アプリケーションから開く]メニューの重複エントリを修正します

これを修正するには、OS XのLaunchServicesデータベースをリセットする必要があります。OS Xのほとんどのアクションの場合と同様に、このタスクを実行する方法は複数ありますが、最速の方法は単にターミナルコマンドを使用することです。

その記事から-以下を端末にコピーします

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

あなたのソリューションはgrgarsideのものと同等です。私のTerminal-fuはそれらを正確に解析するのに十分ではありませんが、似ているはずです。
鉄人

1
@Tetsujin同等です。前者のグロビングは後者のパスに拡大します。
grg

7

これはOS Xの長年のバグです。lsregisterで修正できます。

/Sy*/L*/Fr*/CoreS*/F*/L*/S*/lsregister -kill -r -domain local -domain system -domain user

1
あなたはとても親切で、いくつかの参照を提供しますか、あなたは私たち全員のための標準的な手順を知っています。
ラスケ14年

1
@Buscar特定の引用はありません。これは、参照リストの1つにあるコマンドの1つです。
GRG

2
へえ、コードゴルフからまっすぐ何かのように見えます;)
ドアノブ14年

4

他の回答に加えて、他のハードドライブまたはバックアップコピーに存在する複数のコピーを表示できます。Time Machineバックアップに使用する外付けハードドライブは、アプリケーションがそのドライブにバックアップされている場合、オプションとして表示される場合があります。

アプリの提供元を知りたい場合は、他のアプリケーションのいずれかを開きます。次に、Dockからコントロールアイコンを押しながらアプリアイコンをクリックし、[オプション]> [Finderに表示]を選択します。これにより、アプリケーションの場所が表示されます。

Buscar웃が提供するコマンドラインを使用して、システムのLaunchServicesを更新します。


2

grgarsideとBuscarが提供する回答を拡張するには、.bashrcスクリプトでエイリアスを定義することで、痛みを少し軽減できます。これを行うには、Terminal.appを開き、お気に入りのテキストエディター(vi、nano、もしそうならemacs)で編集.bashrcして、最後に次の行を追加します。

alias rmdup="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain user; killall Finder"

rmdupこれは、後でコマンドを簡単に覚えられるように選択したエイリアス名であることに注意してください(「重複の削除」に拡張することを意図しています)。好きなエイリアス名を選択できますが、別のコマンドで既に使用されている名前を使用しないように注意してください。

.bashrcを変更した後、アプリケーションの重複に再度気付いたときは、Terminal.appを開いrmdupて、lsregisterコマンドのすべての引数などを含むフルパスの代わりに、選択した名前を入力できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.