Neden oldu '.' Geçerli dizini temsil etmek için seçilir ve üst dizin için '..'


Yanıtlar:


16

Tilde sorusu kadar ilginç bir cevap bulacağınızdan şüpheliyim!

Orada değildim, ama .. gibi bir bağlamda anlam ifade eden bir üç nokta (...) gibi cd ../../../there. Ayrıca, özellikle de tilde kutusundaki olde terminal klavyesine baktığımızda, bu amaç için pek uygun karakter yoktur. Sizin için de kaydırmanıza gerek .yok. Mükemmel.

Bir nokta önekinin gizli dosyalar için kullanılması, başka bir neden olabilir. Gizli dosyalar, varsayılan olarak ls, gibi araçlar tarafından listelenmez , bu yüzden de esasen gereksiz .ve ... Diğer dosyalar ile birlikte onları dikkate almanın bir anlamı olmadığı açısından gereksiz - aksi takdirde kesinlikle faydalıdır.

Görünüşe göre geriye doğru olabilir ... wikipedia'dan :

Dosya adının önceliği '.' Unix'in ilk günlerinde ortaya çıkan bir yazılım hatasının sonucudur. Ne zaman özel '.' ve '..' dizin girişleri dosya sistemine eklendi, ls komutunun göstermemesi gerektiğine karar verildi. Ancak, ls programı yanlışlıkla sadece '.' Adındaki dosyaları değil, '.' İle başlayan dosyaları dışlamak için yazılmıştır. veya '..'.

Bu programlama sırasında yararlı olduğu ortaya çıkıyor; sistem içerdiğinden. ve .. readdir()komutları (ve kabuk küre) yazın yanıt olarak , onları görmezden ve gizli dosyaları aynı şekilde gerçekleştirilebilir.

Bir farklı görüş kullanan değeri hakkında wikipedia teklifi için referans bulunmaktadır. Tabii ki, tüm hikaye apocryphal olabilir ... inanmak biraz zor, örneğin, Dennis Ritchie sadece ilk karakteri kontrol etmenin iyi olacağını düşündü.

Yazarla aynı fikirde değilim, gizli yapılandırma dosyalarını evrensel bir önek vermek yerine kendi dizinlerine koymak daha iyi olur. Önek .gitignoreve benzeri ağaç içi direktiflere izin vererek, çok daha esnektir .htaccess. Bu tür dosyaların sözlükbilimsel olarak sıralandığında da birlikte göründüğüne tanık olun - belki de sonuçta bu bilerek yapıldı .


2

Genellikle stackoverflow'taki @Panos'la aynı cevabı :

Kısacası, gelişti dve dd( directory ve directory en deliyle kullanıcılar tarafından oluşturuldukları irectory). doldu nokta ve bu .ve ..ilk oluşturulan mkdir(artık sadece kullanıcı tarafından izin verildi dizinleri bağlantı verdikten sonra setuid) fayda ve üstü ile mkdir sistem çağrısı.

Ken Thompson ile röportajdan alıntı (1989-09-06):

MSM : Fakat kullanıcı için kabaca bir dizin hiyerarşisi ile aynı gözüküyordu.

Thompson : Hayır, ilki bir DG. Aslında, asiklik bile değildi. UNIX dosya sistemini anlarsanız, öyleydi .... sistemdeki tüm dosyaların tanımı olan I listesi vardı. Ve sonra bu dosyalardan bazıları sadece isim ve I-sayı içeren dizinlerdi. İçeride onu bir ağaca sınırlayan hiçbir şey yok. Yani aslında, hiyerarşik değildi.

MSM : Anladım.

Thompson : Ve biz onu bir ağaca bağlamadık. Çeşitli topolojileri deniyorduk. Yaptığımız şey, somutlaşmaya dönüşmek ve gerçekte bu sistemden gelen konvansiyonlar olan topolojileri zorlamak. ... Bir dizin yaptığımız her zaman, konvansiyonel olarak onu dd olan dizin - dizin adlı başka bir dizine koyarız . Adı dd idi ve tüm kullanıcıların dizinleri ve aslında diğer çoğu dizinlerin kullanıcıları kendi dizin sistemlerini koruyorlar, tekrar dd'ye işaretçiler veriyorlardı ve dd nokta- noktaya çevrildi.ve dd, dizin dizini içindi. Bu spagetti kasesini muhafaza etmek için sistemdeki diğer tüm dizinlere ulaşabileceğiniz yerdi. Yani, bu tüfü çeşitli biçimlerde kastediyorum ki, bu DG'nin rastgele dizine ve dosya dizisine uygulanmasında kesinlikle bir kural olarak kabul edildi. Dosya sistemleri kontrol programları ve şeyleri, spagetti kase dizinlerinin kilitlenmesi ve ayrık şeylerin bulunması gibi şeyler yazmaya başladığımızda, bir şeyden hoşlanmayacağınızı ve asla geri alamayacağınızı, çünkü onu kaybettiğinizi biliyorsunuz. Bu problemler aşılmaz hale geldi ve bir sonraki uygulamada bundan daha güçlü bir tipoloji zorladık.

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.