Tại sao, Cameron Mở với màn hình hiển thị rất nhiều phiên bản của một ứng dụng? [bản sao]


17

Khi tôi chọn một tệp và nhấp chuột phải vào tệp đó để sử dụng tùy chọn "Mở bằng", tôi thấy một danh sách các ứng dụng có khả năng nhất để mở tệp đó, nhưng trong trường hợp của tôi, chạy 10.9.5, tôi thấy ba và đôi khi bốn mỗi ứng dụng được đề xuất để mở tệp cụ thể đó - xem ảnh chụp màn hình đính kèm. Tại sao lại thế này? Có cách nào để giảm điều đó xuống còn một thể hiện cho mỗi ứng dụng không? Nếu vậy thì thế nào?

nhập mô tả hình ảnh ở đây



Mike, tôi ngưỡng mộ sự siêng năng của bạn trong việc theo dõi, tuy nhiên, câu hỏi của tôi rõ ràng hơn nhiều so với bản sao bị cáo buộc. Số lượt xem là bằng chứng cho tính hợp lệ của nó. Chỉ dựa vào tiêu đề, bạn sẽ không bao giờ biết nó thậm chí là cùng một chủ đề.
fmz

Chúng tôi đóng câu hỏi mọi lúc khi họ đặt lại vấn đề và chỉ đến một nơi cho tất cả các câu trả lời. Nếu câu hỏi của bạn không phải là một câu trả lời hay và rõ ràng về vấn đề này, tôi sẽ xóa nó hoàn toàn sau khi liên kết nó. Vui lòng chỉnh sửa nó hoặc hỏi về meta nếu bạn có thể giúp chúng tôi chỉ ra một câu trả lời chính tắc tốt hơn về cách sửa các dịch vụ khởi chạy. Đó là một cái gì đó đã có từ lâu và tôi không thấy nó thay đổi bất cứ lúc nào sớm.
bmike

Và, như mọi khi - đặt câu hỏi trên Hỏi khác nhau nếu bạn không chắc tại sao điều gì đó được kiểm duyệt hoặc muốn có kết quả khác với tình huống hiện tại. Nhiều mắt hơn về chủ đề thường giúp mọi người - bao gồm cả tôi. Cảm ơn vì bạn đã phản hồi.
bmike

Câu trả lời:


15

Khởi động lại các dịch vụ khởi động để sửa các mục trùng lặp trong Menu 'Mở bằng' của OS X

Để khắc phục điều này, chúng tôi cần thiết lập lại cơ sở dữ liệu LaunchService của OS X. Như trường hợp của hầu hết các hành động trong OS X, có nhiều cách để thực hiện nhiệm vụ này, nhưng cách nhanh nhất là chỉ cần sử dụng lệnh Terminal.

Từ bài viết đó - Sao chép sau vào trong Terminal của bạn

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

Là giải pháp của bạn tương đương với grgarside. Terminal-fu của tôi không đủ tốt để phân tích chính xác chúng, nhưng chúng trông giống như chúng.
Tetsujin

1
@Tetsujin Chúng tương đương nhau. Globing trong trước mở rộng đến con đường sau.
grg

7

Đây là một lỗi lâu đời trong OS X. Bạn có thể sửa nó bằng lsregister:

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

1
Bạn có tử tế không và cung cấp một số tài liệu tham khảo, bạn chỉ biết một quy trình chuẩn cho tất cả chúng ta.
Ruskes

1
@Buscar Tôi không có trích dẫn cụ thể, đó là một trong những lệnh tôi có trong một trong những danh sách tham khảo của mình.
grg

2
Heh, trông giống như một cái gì đó trực tiếp từ Code Golf ;)
Doorknob

4

Ngoài các câu trả lời khác, nó có thể hiển thị nhiều bản sao tồn tại trên các ổ đĩa cứng hoặc bản sao lưu khác. Ổ cứng ngoài mà bạn sử dụng để sao lưu Time Machine có thể hiển thị dưới dạng tùy chọn nếu Ứng dụng của bạn được sao lưu vào ổ đĩa đó.

Nếu bạn tò mò nơi các ứng dụng đến từ đâu, hãy mở một trong những ứng dụng khác. Sau đó, từ Dock, điều khiển + nhấp vào biểu tượng ứng dụng và chọn: Tùy chọn> "Hiển thị trong Finder". Điều này sẽ cho bạn thấy ứng dụng ở đâu.

Sử dụng dòng lệnh được cung cấp bởi Buscar để cập nhật LaunchService của hệ thống của bạn.


2

Để mở rộng các câu trả lời được cung cấp bởi grgarside và Buscar, bạn có thể làm cho nó bớt đau một chút bằng cách xác định bí danh trong tập lệnh .bashrc của bạn. Để làm điều đó, hãy mở Terminal.app và với trình soạn thảo văn bản yêu thích của bạn (vi, nano, emacs nếu bạn quá nghiêng) chỉnh sửa .bashrcđể thêm dòng sau vào cuối:

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

Lưu ý, đó rmdupchỉ là một tên bí danh mà tôi đã chọn để dễ dàng ghi nhớ lệnh sau này (nó có nghĩa là mở rộng để 'xóa các bản sao'). Bạn có thể chọn bất kỳ tên bí danh nào khác mà bạn thích, chỉ cần cẩn thận bạn không sử dụng tên đã được sử dụng cho lệnh khác.

Sau khi thay đổi .bashrc, khi bạn nhận thấy các ứng dụng trùng lặp một lần nữa, bạn có thể mở Terminal.app và nhập rmduphoặc bất kỳ tên nào khác bạn đã chọn, thay vì đường dẫn đầy đủ đến lsregisterlệnh với tất cả các đối số của nó, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.