Bagaimana Linux tahu aplikasi apa yang digunakan untuk membuka file?

2

Saya belum melakukan apapun dengan Linux dalam satu dekade, jadi saya harap pertanyaan ini masih relevan. Saya selalu ingin tahu bagaimana Linux melakukan ini, dan saya baru saja memikirkannya lagi.

Di dunia OS Windows, file dikaitkan dengan aplikasi dengan ekstensi mereka. Misalnya, foo.txt dapat dibuka dengan notepad (txt). Dan foo.xls akan dibuka dengan Excel (xls).

Dengan Linux, nama file tidak memiliki ekstensi (sekarang?), Jadi bagaimana ia tahu aplikasi apa yang digunakan untuk membuka file? Jika sebuah file disebut foo, dan saya mengklik dua kali, itu akan benar-benar terbuka di dalam aplikasi yang benar. Bagaimana?

Bob Horn
sumber
Coba man 1 file.
2
Linux tidak memiliki gagasan tentang asosiasi file dengan aplikasi. Ini adalah fitur manajer file, dan masing-masing dapat melakukannya dengan caranya sendiri.
Barmar

Jawaban:

3

Sebenarnya, Linux sendiri tidak peduli dengan jenis file, hanya peduli apakah file dapat dieksekusi atau tidak, dan ini diatur oleh properti file, bukan kontennya. Namun, filealat yang didistribusikan dengan linux dapat membantu di sini. filemembandingkan isi file dengan basis data, dan mencari kecocokan. Berbagai format file menggunakan angka ajaib di header mereka, misalnya, setiap file JPEG dimulai dengan FFD8, dan diakhiri dengan FFD9. Anda mungkin ingat bahwa executable DOS lama selalu dimulai dengan MZ, yang lagi merupakan angka ajaib.

Mellowcandle
sumber
4

Sebagian besar desktop Linux menggunakan xdg-openini di belakang layar. Itu menanyakan xdg-mimedatabase XML lokal , yang dapat mengidentifikasi file dengan ekstensi mereka, seperti pada Windows, atau dengan byte ajaib dalam file itu sendiri, tergantung pada konfigurasi.

Jika Anda ingin menambahkan dukungan untuk jenis file tambahan, Anda dapat melakukannya menggunakan xdg-mime. Halaman ini mendokumentasikan semantik XML-nya.

Pada prinsipnya juga dimungkinkan untuk menggunakan mailcap untuk ini (dengan run-mailcap), yang tidak hanya melihat ekstensi, tapi saya belum melihat lingkungan desktop yang melakukan itu dalam waktu yang sangat lama.

Cairnarvon
sumber