Чому "Відкрити за допомогою" відображається стільки примірників програми? [дублікат]


17

Коли я вибираю файл і клацаю правою кнопкою миші на ньому, щоб використовувати опцію "Відкрити за допомогою", я бачу список найбільш ймовірних програм для відкриття цього файлу, але в моєму випадку, працює 10.9.5, я бачу три, а іноді і чотири екземпляри кожен рекомендований додаток для відкриття конкретного файлу - див. доданий скріншот. Чому це? Чи є спосіб зменшити це до одного примірника на додаток? Якщо так, то як?

введіть тут опис зображення



Майку, я захоплююсь вашою старанністю в моніторингу, проте моє питання настільки чіткіше, ніж передбачуваний дублікат. Кількість переглядів свідчить про його обгрунтованість. Виходячи лише з назви, ви ніколи не дізнаєтесь, що це навіть та сама тема.
fmz

Ми закриваємо питання весь час, коли вони перезавантажують проблему і вказують на одне місце для всіх відповідей. Якби ваше запитання не було хорошим і чітким перефразовуванням проблеми, я б видалив його повністю після посилання. Не соромтесь відредагувати його або запитати мета, чи можете ви допомогти нам вказати на кращу канонічну відповідь про те, як виправити служби запуску. Це щось, що існує довгий час, і я не бачу, що це зміниться незабаром.
bmike

І, як завжди - задайте питання на питання " Запитайте різні мета", якщо ви не впевнені, чому щось було модеровано чи хочете мати інший результат, ніж поточна ситуація. Більше очей на нитку часто допомагає всім - я в тому числі. Дякуємо за відгук.
bmike

Відповіді:


15

Відновіть LaunchServices для виправлення повторюваних записів у меню "Відкрити" OS OS X

Щоб виправити це, нам потрібно скинути базу даних LaunchServices OS X. Як і у більшості дій в OS X, існує кілька способів виконання цього завдання, але найшвидший - просто використовувати команду Terminal.

З цієї статті - Скопіюйте наступне на свій термінал

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

Чи є ваше рішення еквівалентним grgarside. Мій Термінал-фу недостатньо гарний, щоб точно їх розібрати, але вони виглядають так, як вони повинні бути схожими.
Tetsujin

1
@Tetsujin Вони рівноцінні. Глобулінг у першому розширюється на другий шлях.
гр

7

Це давня помилка в OS X. Ви можете виправити її за допомогою lsregister:

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

1
Чи будете ви такими люб'язними і надасте кілька посилань, ви знаєте просто стандартну процедуру для всіх нас.
Рускес

1
@Buscar У мене немає конкретного цитування - це одна з тих команд, які я маю в одному зі своїх довідкових списків.
гр

2
Хе, схоже на щось прямо з Code Golf ;)
Doorknob

4

На додаток до інших відповідей, він може показувати кілька копій, які існують на інших жорстких дисках або резервних копіях. Зовнішній жорсткий диск, який ви використовуєте для резервного копіювання Time Machine, може відображатися як опція, якщо ваші програми завантажуються на цей диск.

Якщо вам цікаво, звідки беруться програми, відкрийте одну з інших програм. Потім з док-станції натисніть клавішу + натисніть на піктограму додатків і виберіть: Опції> "Показати в 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команди з усіма її аргументами тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.