Por que "Abrir com" exibe tantas instâncias de um aplicativo? [duplicado]

17

Quando seleciono um arquivo e clico com o botão direito do mouse para usar a opção "Abrir com", vejo uma lista dos aplicativos mais prováveis ​​para abrir esse arquivo, mas, no meu caso, executando 10.9.5, vejo três e às vezes quatro instâncias de cada aplicativo recomendado para abrir esse arquivo específico - veja a captura de tela em anexo. Por que é isso? Existe uma maneira de reduzir isso para uma instância por aplicativo? Se sim, como?

insira a descrição da imagem aqui

fmz
fonte
Mike, admiro sua diligência em monitorar, no entanto, minha pergunta é muito mais clara do que a suposta duplicata. A quantidade de visualizações é um testemunho de sua validade. Com base apenas no título, você nunca saberia que era o mesmo assunto.
Fmz # 15/14
Encerramos o tempo todo quando eles reafirmam o problema e apontam para um local para todas as respostas. Se sua pergunta não tivesse sido uma reformulação boa e clara do problema, eu a teria excluído totalmente depois de vinculá-la. Sinta-se à vontade para editá-lo ou perguntar no meta se você pode nos ajudar a apontar para uma melhor resposta canônica de como corrigir os serviços de lançamento. É algo que existe há muito tempo e não vejo isso mudando tão cedo.
bmike
E, como sempre - faça uma pergunta no Ask Different Meta se não tiver certeza do motivo pelo qual algo foi moderado ou deseja ter um resultado diferente do que a situação atual. Mais olhos no fio geralmente ajudam a todos - inclusive a mim. Obrigado pelo feedback.
bmike

Respostas:

15

Reconstrua o LaunchServices para corrigir entradas duplicadas no menu 'Abrir com' do OS X

Para corrigir isso, precisamos redefinir o banco de dados LaunchServices do OS X. Como é o caso da maioria das ações no OS X, existem várias maneiras de realizar essa tarefa, mas a mais rápida é simplesmente usar um comando Terminal.

Desse artigo - Copie o seguinte para o seu Terminal

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
Ruskes
fonte
A sua solução é equivalente à da grgarside. Meu Terminal-fu não é bom o suficiente para analisá-los com precisão, mas parece que eles devem ser semelhantes.
Tetsujin 13/10
1
@ Tetsujin Eles são equivalentes. O globbing no primeiro se expande para o último caminho.
grg
7

Este é um bug de longa data no OS X. Você pode corrigi-lo com lsregister:

/Sy*/L*/Fr*/CoreS*/F*/L*/S*/lsregister -kill -r -domain local -domain system -domain user
grg
fonte
1
Você seria gentil e forneceria algumas referências? Você conhece apenas um procedimento padrão para todos nós.
Ruskes
1
@Buscar Não tenho nenhuma citação específica - é um daqueles comandos que tenho em uma das minhas listas de referência.
grg
2
Heh, parece algo direto do Code Golf ;)
Maçaneta
4

Além das outras respostas, ele pode mostrar várias cópias existentes em outros discos rígidos ou cópias de backup. Um disco rígido externo usado para backups do Time Machine pode aparecer como opção se você fizer backup dos seus aplicativos nessa unidade.

Se você estiver curioso sobre a origem dos aplicativos, abra um dos outros aplicativos. Em seguida, no Dock, pressione + clique no ícone do aplicativo e escolha: Opções> "Mostrar no Finder". Isso mostrará onde está o aplicativo.

Use a linha de comando fornecida pelo Buscar 웃 para atualizar o LaunchServices do seu sistema.

mente travessa
fonte
2

Para expandir as respostas fornecidas por grgarside e Buscar, você pode reduzir um pouco a dor ao definir um alias no script .bashrc. Para fazer isso, abra o Terminal.app e com seu editor de texto favorito (vi, nano, emacs, se você quiser), edite .bashrcpara adicionar a seguinte linha no final:

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

Observe que esse rmdupé apenas um nome alternativo que escolhi para lembrar facilmente o comando mais tarde (ele deve ser expandido para 'remover duplicatas'). Você pode escolher qualquer outro nome de alias que desejar, mas tome cuidado para não usar um nome já usado para outro comando.

Depois de ter mudado seu .bashrc, quando você percebe aplicações duplicadas novamente, você pode simplesmente abrir Terminal.app e tipo rmdupou qualquer outro nome que você escolheu, em vez do caminho completo para o lsregistercomando com todos os seus argumentos, etc.

Mike
fonte