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?
man 1 file
.Jawaban:
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,
file
alat yang didistribusikan dengan linux dapat membantu di sini.file
membandingkan isi file dengan basis data, dan mencari kecocokan. Berbagai format file menggunakan angka ajaib di header mereka, misalnya, setiap file JPEG dimulai denganFFD8
, dan diakhiri denganFFD9
. Anda mungkin ingat bahwa executable DOS lama selalu dimulai denganMZ
, yang lagi merupakan angka ajaib.sumber
Sebagian besar desktop Linux menggunakan
xdg-open
ini di belakang layar. Itu menanyakanxdg-mime
database 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.sumber