Minuscoli nei nomi dei file Linux


11

Poiché trovo che UpperCase sia davvero leggibile per la separazione delle parole della prima lettera in nomi lunghi e complessi, tendo a dare alcuni dei miei nomi di file Linux con alcuni UpperCase. Principalmente eseguibili, anche alcune directory.

Ma sono passate alcune settimane che ho notato che la stragrande maggioranza di tutti i nomi di file nella mia distribuzione Linux sono in minuscolo ...

Quindi ho fatto un po 'di googling un momento fa e ho trovato questo articolo: Linux File Names , che afferma che si dovrebbe sempre usare lettere minuscole nel mondo Unix,

... È meglio usare sempre lettere minuscole in Linux a meno che non si riesca a pensare a una buona ragione per usare maiuscole o miste. La maggior parte delle persone di Unix usano quasi esclusivamente lettere minuscole, ma a parte questo punto "culturale", c'è un'altra buona ragione per usare le lettere minuscole. Se stai condividendo o accedendo a un file system DOS con Linux, DOS non sarà in grado di vedere i file con nomi maiuscoli o misti ...

È davvero così?


2
si, è davvero così. unix le persone non sembrano trovare il tasto shift. ma non c'è davvero nulla di giustificabile per supportare le regole contro il caso misto. è solo uno sfogo.
Ross Patterson,

Risposte:


20

I programmatori detestano l'uso del tasto Maiusc (e il blocco maiuscole è qualcosa che molti cercano di eliminare ). Continuando dal punto che dice "usa sempre lettere minuscole" ...

È meglio usare sempre lettere minuscole in Linux a meno che non si riesca a pensare a una buona ragione per usare maiuscole o miste. La maggior parte delle persone di Unix usano quasi esclusivamente lettere minuscole, ma a parte questo punto "culturale" , c'è un'altra buona ragione per usare le lettere minuscole. Se stai condividendo o accedendo a un file system DOS con Linux, DOS non sarà in grado di vedere i file con nomi maiuscoli o misti.

Il motivo principale di ciò è che se si trasferiscono due file separati da un solo caso in un sistema senza distinzione tra maiuscole e minuscole, sulla macchina insensibile possono accadere cose confuse.

I file sul tuo computer Linux sono tuoi. Fai con loro come vuoi in un modo che abbia senso per te.

Ho scoperto che una convenzione di utilizzare lettere maiuscole per la lettera iniziale di una directory rende più facile per me a navigare loro. Fare un 'ls' nella directory mette automaticamente tutte le directory in cima alla lista e separa le directory dai file rendendo entrambi più facili da vedere e navigare. Ma ancora una volta è per me : fai ciò che funziona per te .


1
DOS? Veramente? Questo non è più rilevante.
Maximus Minimus,

3
@ mh01 Consideravo EBCDIC non rilevante fino allo scorso anno, quando ho dovuto fare i conti con un sistema che ha inviato quel set di caratteri piuttosto che ascii. Ho visto sistemi OpenVMS in giro (la versione più recente era solo 2 anni fa, non male per qualcosa che aveva una prima versione 35 anni fa) ... e il suo file system non è ancora sensibile al maiuscolo / minuscolo. Apparentemente i Mac hanno sia la distinzione tra maiuscole e minuscole sia la distinzione tra maiuscole e minuscole (e su Steam e Photoshop non piacciono i file system case sensitive sul mac ). La distinzione tra maiuscole e minuscole è viva.

3
Per non parlare della stragrande maggioranza delle macchine desktop che eseguono file system Windows senza distinzione tra maiuscole e minuscole.
Kilian Foth

Un buon punto sulla distinzione tra maiuscole e minuscole rispetto alla preservazione di maiuscole e minuscole, ma se si dispone di file diversi che differiscono solo per il case del nome del file, penso che ci siano problemi diversi dal trasferimento a file system senza distinzione tra maiuscole e minuscole che potrebbero causare confusione. ..
un CVn

9

Gli usi "orientati al consumatore" (qualunque cosa ciò possa significare) tendono ad usare Title Case, anche nel mondo Unix. Questo è più spesso il caso in cui l'organizzazione in questione ha persone il cui intero compito è pensare all'esperienza dell'utente.

Per esempio, il mio desktop Ubuntu ha cartelle presenti nella directory home chiamata Downloads, Pictures, Documents, ecc Lo stesso vale per il mio computer portatile OSX (sì, conta: è BSD). Tuttavia, vale la pena sottolineare che Apple arriva fino a nominare le proprie directory di sistema con titlecase (ad esempio /Library/Audio/Apple Loops/), mantenendo il file system di base "classico" tutto minuscolo (ad esempio /usr/libexec/dtrace/). Ma nessuna distribuzione Linux di cui sono a conoscenza utilizza titlecase ovunque al di fuori della home directory dell'utente.

Presumibilmente la distinzione è che le directory che ti aspetti che le persone guardino effettivamente sono titolecase, mentre i posti che ti aspetti che le persone non vadano esplorando sono tutti minuscoli. Una distinzione simile sembra essere in gioco con Ubuntu; solo le directory che dovrebbero apparire come un elenco di cartelle in una finestra di Nautilus sono titlecase, mentre i nomi delle cartelle che dovrebbero essere digitati (non sfogliati) sono tutti più bassi.

E questo è il punto cruciale di esso; titlecase o maiuscolo è più difficile da digitare. Ma titlecase ha un aspetto migliore in un elenco o in una serie di cartelle affiancate. Quindi, scegli di conseguenza. Le persone Linux spesso si occupano della riga di comando anche per compiti banali, quindi le lettere minuscole hanno più senso.


buon punto ma aggiungerei che gli spazi o i trattini bassi sono più facili da leggere rispetto al cammello o al caso Pascal
jk.

4

Circa l'argomento DOS: filesystem DOS / Windows si vedono i file indipendentemente dal caso, e possono gestirli bene. I filesystem DOS molto vecchi non supportano nulla oltre i nomi di file 8.3, ma anche FAT32 può gestire nomi di file lunghi. L'unico problema è che mentre i filesystem DOS / Windows conservano il caso (nella maggior parte dei casi; alcuni sapori scartano il caso per i nomi di file che si adattano al formato 8.3), non fanno distinzione tra maiuscole e minuscole quando si tratta di confrontare i nomi di file; Windows considera "foobar", "Foobar", "FOOBAR" e "fOObAr" come lo stesso nome file.

Detto questo, è principalmente una questione di cultura, ma ci sono alcuni retroscena. Il motivo per cui questa particolare convenzione è rimasta bloccata nel mondo UNIX è l' usabilità . Ci sono due argomenti principali qui:

  • Separare le parole usando caratteri non di lettere è meglio per leggere la comodità che usare l'involucro per segnare i confini delle parole. IfYouDonTBelieveMe, CompareThisSentenceWithThePreviousOneAndTellMeWhichIsEasierToRead. (E, naturalmente, la preparazione novisualallallheworst).
  • Le lettere minuscole hanno forme più varie rispetto alle maiuscole, il che a sua volta porta a forme di parole più diverse. Ciò rende il testo scritto in minuscolo più semplice da leggere rispetto al testo scritto in maiuscolo.

Queste osservazioni sono facili da verificare e sono state persino confermate dalla ricerca scientifica.

Inoltre, la cultura UNIX preferisce convenzioni non solo facili da leggere, ma anche facili da scrivere; Gli hacker UNIX sono in genere persone che impiegano molto tempo a usare la tastiera e molti usano il sistema di battitura a tocco ufficiale o qualche derivato personale ottimizzato per la programmazione. Il concetto di rimanere nella riga home è importante in entrambi i casi, quindi alle persone piace evitare di usare i tasti che non possono essere raggiunti dalla riga home, in particolare i tasti Maiusc.

Se si combinano questi tre vincoli, c'è davvero solo una convenzione ragionevole, che è all-lowercase-with-dashes.


3
@StephaneRolland: perseguire una denominazione coerente in cose diverse come identificatore in diversi linguaggi di programmazione e nomi di file non è saggio. Siate coerenti all'interno di ogni regno e attenetevi alle convenzioni stabilite, ma non cercate di trovare una convenzione per dominarle tutte. Le variabili Java non sono nomi di tabelle SQL e nemmeno nomi di file.
martedì

@StephaneRolland - Credo che la parola che vuoi sia snake_case .
cchamberlain,
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.