Nokta (.) içeren klasör adı için kötü bir uygulama mı? Birden çok noktaya sahip dosya adı nasıl olur?

22

Bazen bir klasörün bir nokta (.) içermesi pratik bir anlam ifade eder. Örneğin, L = 0.5'te yürütülen bir denemeye ait verileri depolıyorsunuz. Bu nedenle klasör şöyle adlandırılabilir:

experiment_L0.5

Dosya adları için benzer bir sorun ortaya çıkabilir. Örneğin:

file_L0.5.txt

Ubuntu'da çalışmak bu kötü uygulama mı? Bu dizinleri Windows kullanıcısıyla paylaşmaya ne dersiniz?

teşekkürler!

    
sordu Hamid 30.01.2014 17:34

5 cevap

31

Bildiğim kadarıyla, tek veya çok noktalı klasörlere ve dosyalara adlandırma konusunda sorun yoktur.

Ubuntu genellikle dosya türünü tanımlamak için noktayı ve üç karakteri (.txt gibi) kullanmaz. Yani bu Ubuntu bağlamında özel bir anlamı yoktur. Bu, dosyaları Windows ile paylaşırken kullanışlıdır. Ubuntu, dosya türünü tanımlamak için dosyanın ilk birkaç baytında Sihirli Sayılar 'ı kullanır. Ancak, Nautilus. Dosya türünü tanımlamak için nokta ve üç karakter uzantısı varsa sihirli sayıları yok sayar. Bu ayar değiştirilebilir. Uzantıları göz ardı etmek için Force Nautilus’a bakın

Ubuntu'da, .experiment_L0.5 gibi bir noktaya sahip bir dosya veya klasör adı başlatmak dosya veya klasörü gizler. Gizli dosyaların görüntüsünü, Nautilus'ta Ctrl + H tuşlarına basarak değiştirebilirsiniz. Windows'da a ile başlayan bir dosya adı. gizli değil. Bu yüzden, .experiment_L0.5 adlı gizli bir dosyayı bir Windows sistemine aktarırsanız, açıkça görünür olacaktır.

Ubuntu'da bir dosya adı, sonunda hiçbir özel anlamı olmayan bir nokta ile bitebilir. Ancak, Windows'da bir nokta dosya adını ve uzantıyı ayırır ve nokta ile biten ancak uzantı olmayan bir dosya adına izin verilmez. Windows'da böyle bir dosya oluşturmaya çalıştığımda, sadece isim, nokta yok, uzantı olmayan bir dosya aldım.

Referans: Dosya Adlarında Wiki

Bunun yardımcı olacağını umuyorum.

    
verilen cevap user68186 30.01.2014 17:44
8

Kısa cevap

  • Windows aşağıdaki karakterlere izin vermez: <>:"/\|?* ( source )
  • Önerilmeyen daha fazla karakter: alan ve nokta . ( kaynak )
    • Komut satırı araçları, adlarda boşluk olduğunda (daha zor, imkansız değil) kullanmak daha zordur
    • Noktalar, RegEx'te kullanılır (ör. grep kullanmak istediğinizde). Önde gelen bir nokta, Linux'ta kongre tarafından gizlenmiş bir dosya oluşturur. Windows'da, dosya tipi algılamasında kullanılan dosya uzantısında noktalar kullanılır.
  • Windows ayrıca dosya adlarına CON , PRN , AUX , CLOCK$ , NUL izin vermez COM1 , COM2 , COM3 , COM4 , COM5 , COM6 , COM7 , COM8 , COM9 LPT1 , LPT2 , LPT3 , LPT4 , LPT5 , LPT6 , LPT7 , LPT8 ve LPT9 . ( kaynak )
  • Bildiğim Unix dosya sistemlerinde izin verilmeyen tek karakterler / ve null (boş bayt, ext4 ).
  • Ayrıca bkz: Dosya sistemi sınırları (Hangi Windows ile uyumlu olmasını istediğinizi bilmiyorum) .

Uzun cevap

Teknik arkaplan: Dosya Sistemi

Ubuntu, / dosya sistemini kullanır. Bir dosya sistemi, dosyaların altta yatan depoda (disk veya SSD veya herhangi bir şekilde) depolandığı, sahip / grup / diğer biçimindeki izinlerin okuma / yazma / yürütme, zaman damgaları, ad olarak kaydedilebildiği parçaları izler.

Dosya sistemi mevcut depolama alanını yapılandırır. İlk bloğa "süper blok" denir. Bu blok bir dosya sistemi monte etmek için kullanılır. Bildiğim kadarıyla, her modern dosya sistemi bu alanı bloklara ayırır. Dosya sistemi oluşturulduğunda blok boyutu yapılandırılabilir olsa da çoğu dosya sisteminin sabit bir blok boyutuna sahip olduğunu düşünüyorum (ve bundan emin değilim). ext4 (ve ayrıca ext2 ve ext3), dosyalar ve dizinler için "inode" denilenleri kullanır. Bu düğümler diğer bloklara işaretçiler içerir (bunlar ayrıca inode veya "veri blokları" olabilir). Ve bir dosyanın "ilk" inode'si, yukarıda bahsettiğim tüm bilgileri içerir.

Diğer bir bilgi, dosyanın "tipi" dir. "Tür" şu şekilde olabilir:

  • normal dosya
  • dizin
  • cihaz dosyası (blok veya karakter cihazı)
  • ...

Aslında, dizinleri bir editörle de açabilirsiniz:

vim /home

Dizin tam yolu içermediğinden, yalnızca içeriğin adlarını göremiyorum neden dosyalarının / içermemesinin bir nedeni. Sanırım kolaylık olabilir. (% Co_de% neden izin verilmediğini bilen var mı?)

Ancak, diğer dosya sistemleri için farklı şeyler vardır. FAT16 ve FAT32, "dosya ayırma tablosu" olarak adlandırıldı. Bu, dosyanızda saklanan tüm dosyaları, hangi "kümenin" başladığı ve hangi kümede tek başına bağlı bir liste olarak bittiğini içeren bir tablo olduğu anlamına gelir.

Size söylemek istediğim önemli olan, izin verilmeyen karakterlerin de dosya sistemine bağlı olabileceğidir.

Teknik arkaplan: Dosya Türleri

  • Windows, dosya türlerini algılamak için dosya uzantılarını kullanır
  • Linux, dosya türlerini algılamak için "Sihirli Bayt" kullanır. Sihirli Baytlar , dosyanın içeriğinin bir parçasıdır ve dolayısıyla addan tamamen bağımsızdır. Bu baytlar, dosya türünün belirtiminin bir parçasıdır (bkz. png belirtimi olarak Bir örnek). Ayrıca, .txt veya .html (her ikisi de metin dosyaları) gibi aynı sihirli bayt içeren dosyalar için dosya adı uzantılarını kullanır.

İlgili

verilen cevap Martin Thoma 06.02.2014 21:21
5

Tamlık için, yalnızca tek bir nokta . veya iki nokta .. içeren isimler özeldir:

  • . geçerli dizine başvuruyor
  • .. , üst dizine başvuruyor

Bu girişler otomatik olarak eklenir ve her zaman var olur, bu yüzden . veya .. adında bir dosya olamaz.

    
verilen cevap Sergey 04.02.2014 22:55
1

Bu önemli değil, linux veya pencerelerde değil.

"program.d" adında bir klasöre sahip olmak yaygın bir uygulamadır - bir program için yapılandırmayı ve bir şeyi saklamak için (/ etc dizinine bakın)

    
verilen cevap Ohad Cohen 30.01.2014 17:47
0

Unix, Linux dosya sistemlerinde dosya adlandırma çok esnektir. Sahip olamayacağınız tek dosya adı, null karakteri veya adında / içeren bir dosyadır. Ancak, diğer sistemlerde yasaklanan / ayrılmış karakterlerin ad-taşınabilirlik açısından kullanılmasından kaçınılması iyi bir uygulama olacaktır; Dosyaya bir Windows sisteminde erişmek istiyorsanız dosya adınıza " * : < > ? \ / | karakterinden (NTFS ile kısıtlanmış) herhangi birini kullanmamalısınız.

Ve dosya adında bir . (dönem) kullanma hakkında , "ayrılmış" görünmüyor gibi iyi olması gerektiğini düşünüyorum (Dosya / dizin adında kullanılmasına izin verilen OpenVMS, MS-DOS ve Windows haricinde, herhangi bir sistemdeki karakter, ancak sonuncu olay, VMS, MS-DOS ve Windows'taki uzantı ayırıcısı olarak yorumlanır) Aşağıdaki Wikipedia bağlantısı:

Diğer sistemlerde, genellikle dosya adının bir parçası olarak kabul edilir ve birden fazla süreye izin verilebilir. Unix'te, öncü bir süre dosya veya klasörün normalde saklı olduğu anlamına gelir.

    
verilen cevap precise 08.02.2014 10:57

Etiketlerdeki diğer soruları oku