Fa parte di uno standard (es. POSIX) che i file di sistema dovrebbero essere in minuscolo?


29

La mia azienda rivende un'applicazione il cui marchio è un caso misto, ad esempio "NomeApplicativo".

Il programma di installazione dell'applicazione crea tutti i percorsi e i nomi dei file in questo standard. Ad esempio, la directory principale è /opt/ApplicationName, il file init viene chiamato, ApplicationNamequindi devo eseguire service ApplicationName statuse così via.

Per me, questo rompe tutte le convenzioni sensate e sento che i file e le directory dovrebbero essere tutti minuscoli (c'è un precedente in altre applicazioni come MySQL, i cui file e directory sono tutti chiamati mysql, anche le applicazioni come Apache e Tomcat eliminano il precedente lettera maiuscola).

Se lo sollevo come segnalazione di bug, vorrei sollevare un argomento più forte del semplice "Penso che sia sbagliato". Quindi è dettato in qualcosa come lo standard POSIX che i file di sistema come questo dovrebbero essere minuscoli?


9
Puoi anche sottolineare che è estremamente fastidioso per i tuoi clienti poiché li costringerai a utilizzare un pulsante extra (maiusc). Questo potrebbe non sembrare un grosso problema (OK, non lo è) ma è fastidioso.
terdon

5
Alcuni filesystem non fanno distinzione tra maiuscole e minuscole, varrebbe la pena sottolineare un semplice errore di battitura (ad esempio, alcuni script utente che fanno riferimento per errore al file "applicationname") funzionerebbero su alcuni sistemi ma non su altri, il problema non verrebbe rilevato immediatamente e potrebbe essere costoso da trovare in seguito. Un "application_name" più esplicito ha meno probabilità di avere questo problema.
Stefan,

11
Un altro controesempio: qualsiasi cosa correlata a X11 di solito ha una X maiuscola nel suo nome file, ad esempio / usr / X11R6, /usr/lib/libX11.so e così via.
nomadictype

1
X vorrebbe essere la tua eccezione di tendenza oggi.
StarWeaver,

1
@nomadictype Oltre a funzionare su un sistema Unix, il sistema X Windows ha ben poco a che fare con lo standard POSIX Unix.
Kusalananda

Risposte:


27

Lo standard POSIX ha una sezione con linee guida per le utility conformi (cioè, "come quelle scritte specifiche per un sistema locale o che sono componenti di un'applicazione più grande") che dice

  1. I nomi delle utilità devono contenere da due a nove caratteri, inclusi.
  2. I nomi delle utilità dovrebbero includere lettere minuscole (la classificazione dei caratteri inferiore) e cifre solo dal set di caratteri portatile.

[rif: 12.2 Linee guida per la sintassi dell'utilità ]

Non mi è chiaro se l'uso delle parole "debba includere" significhi davvero "debba includere solo ". (Il consenso nei commenti qui sotto è che significa "dovrebbe includere solo").

Un'applicazione su un sistema Unix che non pretende di essere un'utilità conforme a POSIX può altrimenti utilizzare il nome che desidera. Se si fa pretesa di essere un'utility conforme POSIX che fa parte dei programmi di utilità POSIX shell , il testo dopo le linee guida nella sezione 12.2 dice che "dovrebbero" cambiamenti nel senso di "si".

Per quanto ne so, non esistono linee guida simili per quanto riguarda i nomi delle directory. macOS (che è un prodotto UNIX 03 certificato quando è in esecuzione su un computer Mac basato su Intel) utilizza /Userscome prefisso le directory home dell'utente, ad esempio, nonché un numero di altri nomi di directory con case miste.


3
Non credo che dichiarino di essere conformi POSIX ovunque. È interessante notare che il nome dell'applicazione ha una lunghezza di 10 caratteri, quindi falliscono anche su quel fronte. A proposito, il modo in cui leggo il punto 2 è "dovrebbe includere solo lettere minuscole e cifre - penso che il" solo "finale copra l'intera clausola. Forse una domanda per english.stackexchange.com :)
Darren

3
XBD definisce shouldcome segue: "Per un'implementazione conforme a IEEE Std 1003.1-XXXX, descrive una funzionalità o un comportamento consigliato ma non obbligatorio. Un'applicazione non deve fare affidamento sull'esistenza della funzionalità o del comportamento. Un'applicazione che si basa su tale non è possibile garantire che una caratteristica o un comportamento sia portabile attraverso implementazioni conformi. Per un'applicazione, descrive una caratteristica o un comportamento che è raccomandato come pratica di programmazione per una portabilità ottimale. "
fpmurphy

5
La denominazione di un'applicazione ha qualcosa a che fare con la denominazione delle utilità di sistema ?
Matti Virkkunen,

1
@IlmariKaronen Correct. Le linee guida sono per l'implementazione delle utility descritte nello standard stesso.
Kusalananda

3
C'è un "solo" nella frase che hai citato. Arriva a un punto imbarazzante nella frase, probabilmente a causa della redazione del comitato, ma ha ancora lo stesso effetto.
Hobbs

44

No, i nomi minuscoli non sono specificati per le directory di installazione del pacchetto software.

In effetti, i pacchetti software storicamente installati sono /optiniziati con il simbolo ticker di tutte le capitali della società che fornisce il pacchetto, ad esempio SUNWper Sun Microsystems o ORCLOracle.

Quindi pacchetti come il filesystem QFS di Sun verrebbero installati in una directory chiamata qualcosa del genere /opt/SUNWqfs.


7
TIL questo nuovo titolo sui ticker azionari. Upvoted. Grazie.
Darren,

2
Credo che tale convenzione si applichi solo a SunOS / Solaris.
fpmurphy

3
@ fpmurphy1 Forse. Ma dato il modo in cui Sun ha trattato la conformità POSIX, dubito che lo schema di denominazione scelto violerebbe qualsiasi parte dello standard. Né penso che Sun avrebbe avuto molto successo nel convincere Oracle a usare qualsiasi schema di denominazione.
Andrew Henle,

1
@AndrewHenle, schema di denominazione SMIs per SunOS / Solaris conforme agli standard e alle specifiche pertinenti. Sia POSIX che Single Unix Specification definiscono shouldessenzialmenteit is recommended
fpmurphy

i nomi maiuscoli si sentono solo grintosi e adottati da un mainframe :)
rackandboneman

4

Oltre alle linee guida POSIX, penso che potrebbe avere ancora più peso sulla tradizione dell'utente. I nomi di casi come "NomeApplicativo" sono diventati popolari con l'esplosione di Wiki, abituando alcune persone (come me) ad usare maiuscole anziché trattini, o peggio, spazi. Ma questo accadde alcuni anni dopo che Linux e SO simili divennero popolari, con una lunga tradizione Unix alle spalle.

Questa tradizione è stata (è) sempre la semplicità, non solo per seguire le regole che Kusalananda ha indicato, anche abbreviando parole di soli quattro-sei caratteri (ad esempio, /usrper "utente", o /srvper "servire" o /mntper "montato") e significati ovviamente più lunghi ( /sbinper "binari superutente". In questa tradizione, maiuscoli, ti costringono a premere il tasto Maiusc, e forse accidentalmente anche il tasto BLOC MAIUSC, è semplicemente malvagio.

In una certa misura, questo è sorprendente perché Unix è stato per molto tempo in grado di scrivere nomi di file lunghi maiuscole e minuscole, mentre, al contrario, MS-DOS / Windows era limitato a nomi di file brevi senza distinzione tra maiuscole e minuscole (otto caratteri più tre per l'estensione) ma perse rapidamente questa semplicità ("Programmi", "I miei documenti", ecc.) quando Windows 95 supera questa limitazione.

Tuttavia, oggi ci sono alcune eccezioni come il NetworkManagerdemone e probabilmente vedremo più WikiWords in futuro. Ma odiamo ancora il mouse e scriviamo nel terminale nomi lunghi che puoi terminare solo con il TabTabcompletamento automatico. O qualcuno vede qualche vantaggio ridenominazione vima VisualImproved?


3
/usrnon è una scorciatoia per "utente". È l'abbreviazione di "Risorsa di sistema Unix"
fpmurphy

1
@ fpmurphy1 che profuma di backronym.
Hobbs,

3
@ fpmurphy1 /usroriginariamente era la directory per contenere le home directory dell'utente (come /homeoggi). Sono d'accordo con Hobbs.
Fran,

2
In Windows, My Computernon è e non è mai stata una directory. È puramente un costrutto di shell; è possibile illustrarlo considerando come, nel prompt dei comandi o in un'applicazione Win16 vecchio stile, accedervi. Program Filesè un casino tutto suo, con il suo nome localizzato; Mi sono imbattuto in questo problema più di recente letteralmente ieri , in cui un software ha assunto il nome inglese Program Filesma il nome effettivo utilizzato era localizzato sul sistema. Probabilmente una delle peggiori sciocchezze di Microsoft in Windows 95.
un CVn del

@hobbs. @Fran Basta fare un Internet per /usre Unix System Resources E, sì, nelle prime versioni di Unix, anche le directory home degli utenti vivevano sotto `/ usr '
fpmurphy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.