Ekstensi mana yang digunakan untuk file teks? (Unix / Linux)


20

Saya perhatikan bahwa saya dapat membaca file teks tanpa ekstensi .txt. Bagaimana bisa? Haruskah saya menyimpan file-file ini dengan atau tanpa .txtekstensi?

Juga, bagaimana dengan .inifile? Saya biasanya menggunakannya seperti ini:, config.iniharuskah saya menghapus ekstensi di sini?

Sumber daya umum apa pun tentang cara Linux menangani ekstensi file akan bermanfaat.

Jawaban:


37

UNIX / Linux tidak memiliki warisan awal DOS / CP / M yang sama dengan Windows. Jadi ekstensi umumnya kurang signifikan untuk sebagian besar utilitas dan alat UNIX.

Saya biasanya menggunakan lingkungan baris perintah saja. Ekstensi dalam lingkungan seperti itu di Linux tidak terlalu signifikan kecuali untuk kenyamanan bagi operator atau pengguna. (Saya tidak punya cukup pengalaman dengan KDE atau GNOME untuk mengetahui bagaimana para pembuat file mereka menangani ekstensi.)

Tetapi kenyamanan seperti itu biasanya penting. Jika config.inibenar-benar dalam format ".ini" standar Microsoft, saya akan membiarkan ekstensi berdiri. File teks lama biasa biasanya tidak memiliki ekstensi di Linux, tetapi ini tidak universal untuk semua file konfigurasi program. Programmer biasanya dapat memutuskan itu.

Saya pikir ".txt" berguna di Linux jika Anda ingin menekankan bahwa itu BUKAN file konfigurasi atau dokumen yang dapat dibaca mesin lainnya. Namun, dalam distribusi sumber, konvensi ini untuk memberi nama file seperti itu semua huruf besar tanpa ekstensi (yaitu README, INSTALL, COPYING, dll.)

Ada beberapa standar dan konvensi tetapi tidak ada yang menghentikan Anda memberi nama apa pun yang Anda inginkan, kecuali jika Anda berbagi sesuatu dengan orang lain.

Di Windows, penamaan file .exemenunjukkan ke shell (biasanya explorer.exe) bahwa itu adalah file yang dapat dieksekusi. UNIX membangun pengetahuan ini ke dalam izin sistem file. Jika xbit yang tepat (lihat man chmod) diatur, itu dikenali dieksekusi oleh shell dan fungsi kernel (saya percaya). Selain itu, Linux tidak peduli, sebagian besar shell tidak akan peduli, dan sebagian besar program mencari di dalam file untuk menemukan itu "tipe."

Tentu saja, ada perintah bagus fileyang dapat menganalisis file dan memberi tahu Anda apa itu dengan tingkat kepastian. Saya percaya jika tidak dapat mencocokkan data dalam file dengan jenis yang diketahui, dan jika hanya berisi karakter ASCII / Unicode yang dapat dicetak, maka file tersebut diasumsikan sebagai file teks.


@ Bruce Ediger di bawah ini benar-benar benar. Tidak ada apa-apa di tingkat kernel atau sistem file, yaitu Linux itu sendiri, menegakkan atau merawat bahwa isi file harus sesuai dengan namanya, atau program yang seharusnya memahaminya. Ini tidak berarti tidak mungkin membuat shell atau utilitas peluncur untuk melakukan sesuatu berdasarkan nama file.


7
Ini juga berguna jika Anda sering bekerja di konsol, karena file yang diberi nama lebih mudah dibedakan dari yang lain dengan globbing.
lynxlynxlynx

9
Anda harus menekankan bahwa nama file Linux tidak memiliki "ekstensi" - bagian ".txt" dari nama file yang berisi itu hanyalah substring. Anda juga harus menekankan bahwa organisasi file internal (string LF-berakhir, string CR-LF berakhir, catatan ukuran tetap, dll) bahkan tidak samar-samar terkait dengan nama, juga tidak ada "aplikasi" yang tahu tentang file yang terkait dengan namanya. .
Bruce Ediger

2
Saya pikir hanya entri direktori FAT16 8.3 di bawah DOS memiliki bidang 3-byte terpisah untuk ekstensi. FAT32 menyimpan bidang 8.3 untuk kompatibilitas tetapi "nama file panjang" yang sebenarnya adalah string tanpa bidang ekstensi terpisah, dibagi terhadap beberapa entri direktori ( fandecheng.com/personal/interests/ewindows/nuhelp/lfnspec.htm )
LawrenceC

23

Tidak seperti Windows, dalam sistem UNIX tipe file tidak ditentukan oleh ekstensi. Ekstensi file adalah dan hanya merupakan indikator visual untuk manusia. Anda dapat memberi nama JPEG foo.c dan membukanya di Gimp. Kontras lain dari Windows adalah bahwa pada sistem UNIX Anda harus menggunakan seluruh nama file, sementara Windows akan sering mengurusnya untuk Anda (misalnya, menjalankan hanya explorervs. explorer.exe). Pada UNIX foo.shharus disebut foo.sh, bukan hanya foo.

Dengan konvensi, orang cenderung menggunakan serangkaian ekstensi yang umum. Praktek ini, meskipun tidak perlu, mungkin bermanfaat bagi umat manusia pada umumnya.


7
+1 untukThis practice…is probably beneficial for humanity at large
Ulrich Dangel

Sayang sekali perbedaan kemasan membuat kadang-kadang penanganan pantomim sulit (mis. Di KDE dari pengalaman saya), meskipun saya tidak tahu mengapa program tidak kembali memeriksa byte ajaib.
lynxlynxlynx

3
Karena tidak ada byte "ajaib". Itu hanya singkatan untuk "semua tipe file yang dikenal yang didokumentasikan dengan cukup baik dan cukup terstruktur untuk dapat dideteksi dengan andal dengan tingkat kepastian yang tinggi". Ini bekerja sangat baik untuk file teks atau wadah. Biasanya gagal total untuk semua tipe data mentah atau tidak dikenal.
bahamat

1
@ Bahahamat Ini bukan byte, tetapi ada bagian dari file yang secara tradisional disebut " angka ajaib " yang seharusnya mendefinisikan apa yang berisi file tersebut. Itu yang dilihat oleh fileperintah. ( #!adalah angka ajaib untuk skrip sh, misalnya)
Izkata

1
@ lzkata benar, seperti yang saya katakan: "tipe file yang dikenal yang didokumentasikan dengan cukup baik dan cukup terstruktur untuk dapat dideteksi dengan andal dengan tingkat kepastian yang tinggi".
bahamat

7

Secara umum saya telah menemukan menjaga konvensi yang ketat, deskriptif, penamaan menjadi sangat membantu. Anda tidak memerlukan ekstensi di Unix, tetapi saya akan menyimpannya karena dua alasan:

1) Jika file itu akan pernah dibaca oleh mesin windows, itu akan lebih mudah untuk dibuka daripada mencoba menemukan "buka dengan ...".

2) Ekstensi membantu Anda, pengguna, mencari tahu apa yang sedang dilakukan file. Di lab kami: .txt = file teks .sgi = irix biner yang dikompilasi .linux = linux biner yang dikompilasi

Jika Anda harus menggunakan mesin unix yang lebih lama (kami masih menggunakan IRIX), perlu diingat bahwa carriage return berbeda di * nix Machines, dan program mungkin tidak menghargai jika Anda mencoba dan membuka file dengan pengembalian carriage windows.



3

Ada beberapa jawaban bagus. Saya ingin menjawab lebih lanjut bagian dari pertanyaan awal: "Sumber daya umum tentang bagaimana Linux menangani ekstensi file akan berguna."

Dimungkinkan untuk mendaftarkan ekstensi, sehingga Linux selalu membuka ekstensi tertentu dengan program tertentu. Fasilitas ini disebut binfmt .

binfmt_misc adalah kemampuan kernel Linux yang memungkinkan format file yang dapat dieksekusi sewenang-wenang dikenali dan diteruskan ke aplikasi ruang pengguna tertentu, seperti emulator dan mesin virtual. Format yang dapat dieksekusi didaftarkan melalui antarmuka sistem file tujuan khusus (mirip dengan / proc). Distribusi berbasis Debian menyediakan fungsionalitas melalui paket dukungan binfmt tambahan.

Setiap format memiliki entri file yang sesuai di direktori / proc / sys / fs / binfmt_misc yang dapat dibaca untuk mendapatkan informasi tentang format file yang diberikan.


-2

.txt dapat dibuka melalui aplikasi yang berbeda. tetapi yang penting adalah bahwa itu digunakan untuk mengklasifikasikan file dalam tipe tertentu. Anda dapat melihat apakah kami menyimpan file yang sama menggunakan .html file tersebut mencoba dibuka di internet explorer. aplikasi dibuat sesuai untuk mendukung tipe file seperti itu. Jika Anda menggunakan .html di atas, kompiler akan mencoba mencari atribut html di dalamnya dan menunjukkan hasilnya. sama dengan ekstensi lainnya. File .ini dapat dibaca sebagai teks tetapi ekstensi mengklasifikasikannya sebagai file konfigurasi dan karenanya kompiler memperlakukannya sebagai file konfigurasi bukan file teks biasa karena file teks hanya satu set catatan dan tidak memiliki fungsi spesifik seperti itu. ini.hence Anda tidak ingin mengubah ekstensi ini ke teks


6
Itu mungkin terjadi pada Windows, tetapi (seperti yang dijelaskan dalam jawaban lain), ini tidak relevan dalam sistem operasi UN * X-ish.
Piskvor
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.