Câu hỏi Sự khác biệt giữa các ứng dụng .app và các tập tin trong / usr / bin?


Tôi thực sự không hiểu sự khác biệt. Tôi đã thử đặt một tập tin .app trong / usr / bin và thực hiện nếu từ các thiết bị đầu cuối nhưng điều đó không làm bất cứ điều gì. Loại tệp nào có trong đó?


4
2018-01-06 22:18


gốc




Các câu trả lời:


Wikipedia có một bài viết hay về Gói ứng dụngS.

Tóm lại, một .app không phải là tệp: đó là cây thư mục có cấu trúc cụ thể. Thực tế nhị phân chạy (tức là, tương đương với nhị phân bạn sẽ tìm thấy trong /usr/bin) Là PackageName.app/Contents/MacOS/PackageName. Tuy nhiên, bạn (nói chung) không thể chỉ sao chép tập tin đó vào '/ usr / bin' và chạy nó, vì nó sẽ mong đợi có rất nhiều tệp khác cần trong thư mục .app - ví dụ, nhiều ứng dụng có các tệp dịch cho phép họ trình bày giao diện người dùng bằng các ngôn ngữ khác nhau trong PackageName.app/Contents/Resources/de.lproj (Ở đâu de có nghĩa là german).

Trong một số trường hợp, .app gói có thể chứa các tệp thi hành mà bạn có thể thực thi trực tiếp - ví dụ, tôi thường sử dụng ebook-convert nhị phân từ calibre.app bó, bằng cách chạy /Applications/calibre.app/Contents/Resources/loaders/ebook-convert. Trong trường hợp này, chuyển đổi ebook xảy ra là một tập lệnh python độc lập và hoàn toàn hạnh phúc khi được gọi theo cách này - không phải tất cả các tệp thực thi đều sẽ vui vẻ.

Bạn thường có thể bắt đầu một .app bằng cách gọi trực tiếp nhị phân chính - ví dụ: /Applications/Safari.app/Contents/MacOS/Safari sẽ khởi chạy Safari. Tuy nhiên, đây là rất nhiều cách gõ - open /Applications/Safari.app là một phím tắt làm điều tương tự.

man open có nhiều ví dụ hơn về việc sử dụng open hoạt động như thể người dùng đã nhấp đúp vào biểu tượng trong công cụ tìm.


6
2018-01-07 01:30



Chỉ cần một lưu ý để thêm vào đây. Trong Finder, bạn có thể thấy những gì bên trong một Gói ứng dụng (hoặc bất kỳ gói nào) bằng cách nhấp chuột phải vào biểu tượng của nó và chọn "Hiển thị Nội dung gói" từ trình đơn ngữ cảnh. - Josh


Như Tomas Markauskas nói, .app là một gói.

Tại sao bạn cố di chuyển tệp .app vào / usr / bin? Tôi sẽ đoán rằng những gì bạn thực sự muốn biết là "làm thế nào để mở một tập tin bằng cách sử dụng Foo.app khi tôi đang ở dòng lệnh?"

Nếu tôi đúng, câu trả lời là không di chuyển tệp .app vào / usr / bin. Câu trả lời đúng là sử dụng open chỉ huy:

$ open -a Foo some_file

Sử dụng open không có -a sẽ mở tệp bằng ứng dụng mặc định của nó - giống như khi bạn nhấp đúp vào some_file trong Trình tìm kiếm.


4
2018-01-06 23:21





.app thực sự không phải là một tệp, mà là một thư mục (hoặc gói Ứng dụng) với nhiều tệp khác nhau trong đó. Nó cũng chứa các tập tin thực thi mà bạn thực sự chạy.


2
2018-01-06 22:33





Bạn cũng có thể chạy ứng dụng trực tiếp với open chỉ huy:

open /Applications/Safari.app/

0
2018-01-07 00:30