Herhangi bir standardın parçası mı (örneğin POSIX), sistem dosyalarının küçük harf olması gerekir mi?


29

Şirketim, markası karışık olan bir uygulamayı (örneğin, "UygulamaAdı") satıyor.

Uygulamanın yükleyicisi bu standarttaki tüm yolları ve dosya adlarını oluşturur. Örneğin, ana dizin, /opt/ApplicationNameinit dosyasının adıdır, ApplicationNamebu yüzden çalışmam gerekiyor service ApplicationName status.

Bana göre, bu tüm mantıklı kuralları bozuyor ve dosyaların ve dizinlerin hepsinin küçük harfli olması gerektiğini düşünüyorum (Apers mysqlve Tomcat gibi uygulamalar bile, önceki tüm dosyaların ve dizinlerin çağrıldığı MySQL gibi diğer uygulamalarda emsal vardır. büyük harf).

Bunu bir hata raporu olarak bildirirsem, "Yanlış olduğunu düşünüyorum" dan daha güçlü bir argüman ortaya koymak isterim. Öyleyse POSIX standardı gibi bir şeyde, bunun gibi sistem dosyalarının küçük harf olması gerektiği belirlenir mi?


9
Ayrıca, müşterilerinizi ekstra bir düğme (vardiya) kullanmaya zorlayacağınız için müşterileriniz için fazlasıyla can sıkıcı olduğunu da belirtebilirsiniz. Bu büyük bir anlaşma gibi görünmeyebilir (Tamam, değil) ama can sıkıcı bir durum.
terdon

5
Bazı dosya sistemleri büyük küçük harf duyarsızdır, basit bir yazım hatası (örneğin, "uygulama adına" dosyaya atıfta bulunan bazı kullanıcı komut dosyası) bazı sistemlerde çalışacak, ancak diğerleri üzerinde çalışmayacak, derhal çözülmeyecek ve daha sonra bulmak pahalı olabilir. Daha açık bir "application_name", bu sorunun olması daha az olasıdır.
Stefan,

11
Başka bir karşı örnek: X11 ile ilgili herhangi bir şeyin genellikle dosya adında bir büyük X harfi vardır, örneğin / usr / X11R6, /usr/lib/libX11.so vb.
göçebe türü

1
X bugün trendinizi kanıtlayan bir istisna olmak ister.
StarWeaver

1
@nomadictype Bir Unix sisteminde çalışmanın yanı sıra, X Windows Sisteminin Unix POSIX standardı ile çok az ilgisi vardır.
Kusalananda

Yanıtlar:


27

POSIX standardı, kamu hizmetleri (örneğin, "yerel bir sisteme özgü olanlar veya daha büyük bir uygulamanın bileşenleri olanlar gibi") uygunluk kuralları ile ilgili bir bölüme sahiptir.

  1. Yardımcı program adları, dahil olmak üzere iki ila dokuz karakter arasında olmalıdır.
  2. Yardımcı program adları, küçük harfleri (alt karakter sınıflandırması) ve yalnızca taşınabilir karakter kümesindeki rakamları içermelidir.

[ref: 12.2 Yardımcı Program Sözdizimi Kuralları ]

"İçermeli" kelimelerinin kullanılmasının " sadece " içermeli "anlamına gelip gelmediği bana açık değildir . (Aşağıdaki yorumlarda yer alan fikir birliği "sadece içermelidir" anlamına gelir).

Unix sistemindeki POSIX uyumlu bir yardımcı program olmadığını iddia eden bir uygulama, istediği adı kullanabilir. O takdirde yapar bir POSIX conformant yarar olduğu iddiasını POSIX kabuk kamu parçasıdır , bölüm 12.2 yönergelere sonra metin değişir "ifadesi" anlamına gelen "gerektiğini" söylüyor.

Bildiğim kadarıyla dizin isimleriyle ilgili benzer bir kılavuz yok. macOS ( Intel tabanlı bir Mac bilgisayarda çalışırken onaylı bir UNIX 03 ürünüdür ), /Userskullanıcının ev dizinleri için ön ek olarak, örneğin bir dizi başka karışık durumdaki dizin adlarını kullanır.


3
POSIX uyumlu olduğunu iddia ettiklerini sanmıyorum. İlginçtir ki, uygulama adı 10 karakter uzunluğundadır, bu yüzden de ön yüzünde başarısız olurlar. BTW, 2 numaralı noktayı okuma biçimim "sadece küçük harf ve rakam içermeli - sanırım son" sadece "tüm maddeyi kapsıyor. Belki de english.stackexchange.com için bir soru :)
Darren

3
XBD, shouldaşağıdakileri tanımlamaktadır : "IEEE Std 1003.1- XXXX’e uyan bir uygulama için, önerilen ancak zorunlu olmayan bir özellik veya davranış açıklanmaktadır. Bir uygulama, özellik veya davranışın varlığına dayanmamalıdır. bir özellik veya davranışın uygun uygulamalar arasında taşınabilir olması garanti edilemez. Bir uygulama için, optimum taşınabilirlik için önerilen programlama uygulamasını öneren bir özellik veya davranış açıklanmaktadır. "
fpmurphy

5
Bir uygulamanın adlandırılmasının, sistem yardımcı programlarının adlandırılmasıyla bir ilgisi var mı?
Matti Virkkunen

1
@IlmariKaronen Doğru. Kurallar, standardın kendisinde açıklanan yardımcı programları uygulamak içindir.
Kusalananda

3
Aldığın cümlede "sadece" var. Muhtemelen komite düzenlemesi nedeniyle ifadede garip bir noktaya gelir, ancak yine de aynı etkiye sahiptir.
Hobiler

44

Hayır, yazılım paketi kurulum dizinleri için küçük harf isimleri belirtilmemiştir.

Aslında, tarihsel olarak yüklenen yazılım paketleri /opt, SUNWSun Microsystems veya ORCLOracle için olduğu gibi, paketi sağlayan şirketin tüm sermaye stok hisse senedi simgesiyle başladı .

Bu yüzden Sun'ın QFS dosya sistemi gibi paketler benzer bir dizine kurulur /opt/SUNWqfs.


7
TIKLAYICI GİRİŞLER HAKKINDA Bu Yeni KENDİ TIL Upvoted. Teşekkürler.
Darren,

2
Bu konvansiyonun sadece SunOS / Solaris'e uygulanacağına inanıyorum.
fpmurphy

3
@ fpmurphy1 Belki de. Ancak Sun'ın POSIX uyumluluğunu nasıl değerlendirdiği göz önüne alındığında, seçtikleri adlandırma düzeninin standardın herhangi bir bölümünü ihlal edeceğinden şüpheliyim. Ben de Sun’ın Oracle’ı herhangi bir adlandırma programını kullanmaya ikna etmede çok başarılı olabileceğini düşünmüyorum.
Andrew Henle

1
@AndrewHenle, SunOS / Solaris için SMI isimlendirme programı ilgili standartlara ve şartnamelere uygun olarak gerçekleştirildi. Hem POSIX hem de Single Unix Spesifikasyonu shouldesas olarak tanımlanırit is recommended
fpmurphy

büyük harf isimleri sadece cesur hissediyorum ve anabilgisayardan evlat edinildi :)
rackandboneman

4

POSIX yönergelerinin yanı sıra, kullanıcı geleneğini daha da ağırlaştırabileceğini düşünüyorum. "ApplicationName" olarak adlandırılan adlar, bazı kişilerin (benim gibi) kısa çizgiler veya daha büyük boşluklar yerine büyük harf kullanmaları için alışmasıyla, Wikis patlamasıyla popüler oldu. Fakat bu, Linux ve benzeri işletim sistemlerinin popüler olmasının ve çok uzun bir Unix geleneğinin ardında birkaç yıl geçti.

Bu gelenek, sadece Kusalananda'nın işaret ettiği kurallara uymakla kalmamak, hatta sadece altı altı karakterden oluşan kelimeleri kısaltmakla da (örneğin, /usr"kullanıcı" /srviçin veya "hizmet" için veya /mnt"monte edilmiş") Açıkçası daha uzun anlamlar ( /sbin"süper kullanıcı ikili dosyaları için".. Bu gelenek, büyük harf, Shift tuşuna basmanız için zorlar ve belki de yanlışlıkla Caps Lock tuşuna basmanız bile zor.

Bir dereceye kadar, bu şaşırtıcıdır çünkü Unixes uzun zamandır büyük küçük harfe duyarlı uzun dosya adları yazabilmiştir, bunun aksine, MS-DOS / Windows küçük harf duyarsız kısa dosya adları (uzantı için sekiz karakter artı üç) ile sınırlı kalmıştır ancak hızlı bir şekilde kaybedilmiştir. Windows 95 bu sınırlamayı aştığında, bu basitlik ("Program Dosyaları", "Belgelerim" vb.).

Bununla birlikte, bugün NetworkManagerdaemon gibi birkaç istisna vardır ve muhtemelen gelecekte daha fazla WikiWords göreceğiz. Fakat yine de fareden nefret ediyoruz ve sadece TabTabotomatik tamamlama ile sona erebilecek terminal uzun isimlerini yazıyoruz . Ya da birileri yeniden adlandırmak vimiçin bir avantaj görüyor VisualImprovedmu?


3
/usr"user" için kısayol değil. "Unix sistem kaynağı" kısaltması
fpmurphy

1
Bir backronym gibi kokan @ fpmurphy1.
Ocaklar

3
@ fpmurphy1 /usrbaşlangıçta kullanıcının ev dizinlerini içeren dizindi ( /homebugün olduğu gibi ). Hobbs ile katılıyorum.
Fran

2
Windows'ta, My Computerbir dizin değildir ve olmamıştır. Tamamen bir kabuk yapısıdır; Bunu, komut isteminde veya eski tarz bir Win16 uygulamasında nasıl gideceğinizi düşünerek gösterebilirsiniz. Program Filesyerel ismiyle, kendi başına bir karmaşa; Bu soruna son zamanlarda kelimenin tam anlamıyla dün rastladım , burada bir yazılım parçası İngilizce adını aldı, Program Filesancak kullanılan asıl ad sistemde yerelleştirildi. Muhtemelen Windows 95'te Microsoft'un kötü goofs biri
bir CVn

@hobbs. @Fran Sadece bir İnternet yapın /usrve Unix System Resources Ve, evet, Unix'in ilk sürümlerinde kullanıcılar ev dizinleri `/ usr 'altında da yaşadılar
fpmurphy
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.