Metin dosyaları için hangi uzantı kullanılacak? (Unix / Linux)


20

Bir uzantı olmadan metin dosyalarını okuyabildiğimi fark ettim .txt. Nasıl olur? Bu dosyaları .txtuzantılı veya uzantısız kaydetmem gerekir mi?

Ayrıca, .inidosyalar ne olacak ? Genellikle bunları şu şekilde kullanırım:, config.iniuzantıyı buradan kaldırmalı mıyım?

Linux'un dosya uzantılarını nasıl ele alacağına ilişkin genel kaynaklar faydalı olacaktır.

Yanıtlar:


37

UNIX / Linux, Windows'un yaptığı erken DOS / CP / M mirasına sahip değildir. Bu nedenle, uzantılar çoğu UNIX yardımcı programı ve aracı için genellikle daha az önemlidir.

Genellikle yalnızca komut satırı ortamı kullanırım. Linux altında böyle bir ortamdaki uzantılar, operatöre veya kullanıcıya kolaylık sağlamak dışında gerçekten önemli değildir. (KDE veya GNOME ile dosya yöneticilerinin uzantılarla nasıl başa çıktıklarını bilmek için yeterli deneyime sahip değilim.)

Ancak bu kolaylık genellikle önemlidir. Eğer config.iniMicrosoft standardı ".ini" biçiminde gerçekten, ben uzatma standı izin verirdim. Düz eski metin dosyaları genellikle Linux'ta uzantı içermez, ancak bu tüm program yapılandırma dosyaları için evrensel değildir. Programcı genellikle buna karar verir.

Bence bu bir yapılandırma dosyası ya da makine tarafından okunabilir başka bir belge DEĞİL vurgulamak istiyorsanız ".txt" Linux altında yararlı olduğunu düşünüyorum. Bununla birlikte, kaynak dağıtımlarında, kural bu tür dosyalara uzantısız tüm başlıkları (yani README, INSTALL, COPYING, vb.)

Bazı standartlar ve sözleşmeler vardır, ancak başkalarıyla bir şey paylaşmadığınız sürece sizi istediğiniz her şeyi adlandırmaktan alıkoyan hiçbir şey yoktur.

Windows'da, bir dosyanın adlandırılması .exekabuğa (genellikle explorer.exe) yürütülebilir bir dosya olduğunu gösterir. UNIX, bu bilgileri dosya sisteminin izinleri dahilinde oluşturur. Uygun xbitler (bkz. man chmod) Ayarlanmışsa, kabuklar ve çekirdek işlevleri tarafından yürütülebilir olarak tanınır (sanırım). Bunun ötesinde, Linux umursamıyor, çoğu kabuk umursamıyor ve çoğu program dosyada "tip" bulmak için bakıyor.

Tabii ki, filedosyayı analiz edebilen ve ne derece kesin olduğunu söyleyebilen güzel bir komut var. Dosyadaki verileri bilinen herhangi bir türle eşleştiremiyorsa ve yalnızca yazdırılabilir ASCII / Unicode karakterleri içeriyorsa, bunun bir metin dosyası olduğunu varsayarım.


@Bruce Ediger kesinlikle doğrudur. Çekirdek veya dosya sistemi düzeyinde hiçbir şey yoktur, yani Linux'un kendisi, bir dosyanın içeriğinin adıyla veya onu anlaması gereken programla eşleşmesi gerektiğini zorlamak veya önemsemek. Bu, dosya adına dayalı bir şeyler yapmak için bir kabuk veya başlatıcı yardımcı programı oluşturmanın mümkün olmadığı anlamına gelmez.


7
Konsolda çok çalışıyorsanız da yararlıdır, çünkü güzel adlandırılmış dosyaların globbing ile diğerlerinden ayırt edilmesi daha kolaydır.
lynxlynxlynx

9
Linux dosya adlarının "uzantı" içermediğini vurgulamalısınız - dosya adının ".txt" kısmı yalnızca bir alt dize. Ayrıca, dahili dosya organizasyonunun (LF uçlu dizeler, CR-LF uçlu dizeler, sabit boyutlu kayıtlar, vb.) Adla bile ilgili olmadığını veya isimle ilgili dosyayı bilen "uygulama" nın olmadığını da vurgulamalısınız. .
Bruce Ediger

2
DOS altında sadece FAT16 8.3 dizin girişleri uzantısı için ayrı bir 3 bayt alan vardı düşünüyorum. FAT32, 8.3 alanını uyumluluk için sakladı, ancak gerçek "uzun dosya adı", ayrı bir uzantı alanı olmayan, birden çok dizin girişine bölünmüş bir dizedir ( fandecheng.com/personal/interests/ewindows/nuhelp/lfnspec.htm )
LawrenceC

23

Windows'tan farklı olarak, UNIX sistemlerinde dosya türü uzantı tarafından belirlenmez. Dosya uzantısı insanlar için görsel bir göstergedir. Bir JPEG foo.c adını verebilir ve Gimp'te açabilirsiniz. Windows'tan başka zıt, Windows genellikle sizin için ilgilenir iken UNIX sistemleri üzerinde size (örneğin sadece çalışan tüm dosya adı kullanmak zorunda olmasıdır explorervs explorer.exe). UNIX'te basit foo.sholarak foo.shdeğil, olarak adlandırılmalıdır foo.

Sözleşmeyle insanlar ortak bir uzantı seti kullanma eğilimindedir. Bu uygulama, gereksiz olsa da, muhtemelen insanlık için faydalıdır.


7
+1 içinThis practice…is probably beneficial for humanity at large
Ulrich Dangel

Paketleme çeşitliliği çok kötü, bazen uygun mim işlemeyi zorlaştırıyor (örneğin, deneyimlerimden KDE'de), ancak programların neden sihirli baytı kontrol etmeye geri dönmediğini bilmiyorum.
lynxlynxlynx

3
Çünkü "sihirli" bayt yoktur. Bu sadece "yüksek derecede kesinlik ile güvenilir bir şekilde algılanacak kadar iyi belgelenmiş ve yapılandırılmış bilinen tüm dosya türleri" için kestirme yol. Metin veya kapsayıcı dosyaları için çok iyi çalışır. Genellikle ham veya bilinmeyen veri türleri için sefil bir şekilde başarısız olur.
Bahama

1
@bahamat Bir bayt değil, ancak dosyanın içerdiği dosyayı tanımlamak için geleneksel olarak " sihirli sayı " olarak adlandırılan bir bölümü var . fileKomutun baktığı şey bu . ( #!örneğin, sh betiklerinin sihirli numarasıdır)
Izkata

1
@lzkata doğru, dediğim gibi: "makul derecede iyi belgelenmiş ve yüksek derecede kesinlik ile güvenilir bir şekilde algılanacak kadar yapılandırılmış bilinen dosya türleri".
Bahama

7

Genel olarak katı, açıklayıcı ve isimlendirme kurallarını çok yararlı buldum. Unix'te uzantıya ihtiyacınız yoktur, ancak iki nedenden dolayı saklıyorum:

1) Bu dosya bir windows makinesi tarafından okunacaksa, "ile aç ..." bulmaya çalışmaktan daha kolay açılır.

2) Uzantılar, kullanıcının dosyanın ne yaptığını anlamanıza yardımcı olur. Laboratuvarımızda: .txt = metin dosyası .sgi = irix derlenmiş ikili .linux = linux derlenmiş ikili

Daha eski unix makineleri kullanmanız gerekiyorsa (yine de IRIX kullanıyoruz), * nix makinelerinde satır başı değişikliğinin farklı olduğunu ve Windows satır başı döndüren bir dosyayı açmaya çalıştığınızda programların hoşuna gitmeyeceğini unutmayın.



3

Birkaç iyi cevap var. Orijinal sorunun bir bölümünü daha yanıtlamak istiyorum: "Linux'un dosya uzantılarını nasıl ele alacağına ilişkin genel kaynaklar faydalı olacaktır."

Uzantıları kaydetmek mümkündür, böylece Linux her zaman belirli programlarla belirli uzantıları açar. Bu tesise binfmt denir .

binfmt_misc, Linux çekirdeğinin, keyfi yürütülebilir dosya biçimlerinin tanınmasını ve öykünücüler ve sanal makineler gibi belirli kullanıcı alanı uygulamalarına aktarılmasını sağlayan bir yeteneğidir. Yürütülebilir biçimler özel amaçlı bir dosya sistemi arabirimi (/ proc benzeri) aracılığıyla kaydedilir. Debian tabanlı dağıtımlar ek bir binfmt destek paketi aracılığıyla işlevsellik sağlar.

Her biçim, / proc / sys / fs / binfmt_misc dizininde belirli bir dosya biçimi hakkında bilgi almak için okunabilen karşılık gelen bir dosya girişine sahiptir.


-2

.txt farklı uygulamalarla açılabilir. ancak önemli olan, dosyayı belirli tipte sınıflandırmak için kullanılmasıdır. Aynı dosyayı internet explorer'da açmaya çalıştığımız .html dosyasını kullanarak kaydedip kaydetmeyeceğimizi görebilirsiniz. uygulamalar bu tür dosya türlerini destekleyecek şekilde yapılır. Yukarıda .html kullanırsanız derleyici içindeki html özniteliklerini bulmaya çalışır ve sonucu buna göre gösterir. diğer uzantılarla aynı. .ini dosyası metin olarak okunabilir, ancak uzantı bunu yapılandırma dosyası olarak sınıflandırır ve bu nedenle derleyici, metin dosyası yalnızca bir kayıt kümesi olduğundan ve özel bir işlevi olmadığından, bunu normal bir metin dosyası olarak değil, yapılandırma dosyası olarak değerlendirir. Bu nedenle ini uzantısını metne değiştirmek istemezsiniz.


6
Windows'da durum bu olabilir, ancak (diğer yanıtlarda açıklandığı gibi), bu UN * X-ish işletim sistemlerinde önemsizdir.
Piskvor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.