Minúsculas en nombres de archivos de Linux

11

Como encuentro que UpperCase es realmente legible para la separación de palabras de la primera letra en nombres largos y complejos, tiendo a dar algunos de mis nombres de archivos Linux con UpperCase. Principalmente ejecutables, algunos directorios también.

Pero han pasado unas semanas en las que he observado que la gran mayoría de todos los nombres de archivo en mi distribución de Linux están en minúsculas ...

Así que busqué en Google hace un momento, y encontré este artículo: Nombres de archivos de Linux , que establece que uno siempre debe usar minúsculas en el mundo de Unix,

... Es mejor usar siempre minúsculas en Linux a menos que se te ocurra una buena razón para usar mayúsculas o mayúsculas y minúsculas. La mayoría de las personas de Unix usan minúsculas casi exclusivamente, pero aparte de este punto "cultural", hay otra buena razón para usar minúsculas. Si está compartiendo o accediendo a un sistema de archivos DOS con Linux, DOS no podrá ver los archivos que tienen mayúsculas o minúsculas ...

¿Es realmente el caso?

Stephane Rolland
fuente
2
Sí, ese es realmente el caso. la gente de Unix parece que no puede encontrar la tecla shift. pero realmente no hay nada justificable para apoyar las reglas contra el caso mixto. Es solo una diatriba.
Ross Patterson

Respuestas:

20

Los programadores aborrecen el uso de la tecla shift (y el bloqueo de mayúsculas es algo que muchos intentan eliminar ). Continuando desde el lugar que dice "siempre use minúsculas" ...

Es mejor usar siempre minúsculas en Linux a menos que se te ocurra una buena razón para usar mayúsculas o mayúsculas y minúsculas. La mayoría de las personas de Unix usan minúsculas casi exclusivamente, pero aparte de este punto "cultural" , hay otra buena razón para usar minúsculas. Si está compartiendo o accediendo a un sistema de archivos DOS con Linux, DOS no podrá ver los archivos que tienen nombres de archivo en mayúsculas o mixtos.

La razón principal de esto es que si está transfiriendo dos archivos separados por un solo caso a un sistema que no distingue entre mayúsculas y minúsculas, pueden ocurrir cosas confusas en la máquina insensible.

Los archivos en su máquina Linux son suyos. Haz con ellos lo que quieras de una manera que tenga sentido para ti.

He encontrado que una convención de utilizar mayúsculas para la principal carta de un directorio hace que sea más fácil para mí para navegar por ellos. Hacer una 'ls' en el directorio coloca automáticamente todos los directorios en la parte superior de la lista y separa los directorios de los archivos, lo que facilita su visualización y navegación. Pero, de nuevo, eso es para mí : haz lo que funcione para ti .


fuente
1
DOS? De Verdad? Eso ya no es relevante.
Maximus Minimus
3
@ mh01 Solía ​​considerar que EBCDIC no era relevante hasta el año pasado que tuve que lidiar con un sistema que envió ese conjunto de caracteres en lugar de ascii. He visto sistemas OpenVMS (la versión más reciente fue hace solo 2 años, no está mal para algo que tuvo una primera versión hace 35 años) ... y su sistema de archivos aún no distingue entre mayúsculas y minúsculas. Aparentemente, las Mac tienen mayúsculas y minúsculas (y a steam y photoshop no les gustan los sistemas de archivos con mayúsculas y minúsculas en la Mac ). Caso insensible está vivo.
3
Sin mencionar la gran mayoría de las máquinas de escritorio que ejecutan sistemas de archivos de Windows que no distinguen entre mayúsculas y minúsculas.
Kilian Foth
Un buen punto sobre la insensibilidad entre mayúsculas y minúsculas versus la preservación de mayúsculas y minúsculas, pero si tiene diferentes archivos que difieren solo en la carcasa del nombre del archivo, creo que hay otros problemas además de la transferencia a sistemas de archivos que no distinguen entre mayúsculas y minúsculas que podrían causar confusión. ..
un CVn
9

Los usos "orientados al consumidor" (lo que sea que eso signifique) tienden a usar el Título del caso, incluso en el mundo Unix. Este suele ser el caso cuando la organización en cuestión tiene personas cuyo trabajo completo es pensar en la experiencia del usuario.

Por ejemplo, el escritorio de Ubuntu tiene carpetas en el directorio principal llamado Downloads, Pictures, Documents, etc. Lo mismo va para mi portátil OSX (sí, cuenta, sino que de BSD). Aunque vale la pena señalar que Apple llega a nombrar sus propios directorios del sistema con un título (por ejemplo /Library/Audio/Apple Loops/), mientras mantiene el sistema de archivos base "clásico" en minúsculas (por ejemplo /usr/libexec/dtrace/). Pero ninguna distribución de Linux que conozco utiliza titlecase en ningún lugar fuera del directorio de inicio del usuario.

Presumiblemente, la distinción es que los directorios que espera que la gente vea realmente son títulos, mientras que los lugares que espera que las personas no vayan a explorar están en minúsculas. Una distinción similar parece estar en juego con Ubuntu; solo los directorios que se espera que se muestren como una lista de carpetas en una ventana de Nautilus son titlecase, mientras que los nombres de las carpetas que se espera que se tomen (no se examinen) son todos más bajos.

Y ese es el quid de la cuestión; titlecase o mayúscula es más difícil de escribir. Pero titlecase se ve mejor en una lista o conjunto de carpetas en mosaico. Por lo tanto, elija en consecuencia. Las personas de Linux con frecuencia operan en la línea de comando incluso para tareas mundanas, por lo que las minúsculas tienen más sentido.

tylerl
fuente
buen punto, pero agregaría que los espacios o guiones bajos son más fáciles de leer que el caso de camello o Pascal
jk.
4

Acerca del argumento de DOS: los sistemas de archivos de DOS / Windows ven sus archivos sin importar el caso, y pueden manejarlos bien. Los sistemas de archivos DOS muy antiguos no admiten nada más que los nombres de archivo 8.3, pero incluso FAT32 puede manejar nombres de archivo largos. El único problema es que, si bien los sistemas de archivos DOS / Windows conservan mayúsculas y minúsculas (en la mayoría de los casos; algunos sabores descartan mayúsculas y minúsculas para nombres de archivo que se ajustan al formato 8.3), no distinguen entre mayúsculas y minúsculas cuando se trata de comparar nombres de archivos; Windows considera que "foobar", "Foobar", "FOOBAR" y "fOObAr" son el mismo nombre de archivo.

Dicho esto, es sobre todo una cuestión de cultura, pero hay algunos antecedentes. La razón por la cual esta convención particular se quedó en el mundo UNIX es la usabilidad . Aquí hay dos argumentos principales:

  • Separar las palabras con caracteres que no son letras es mejor para la comodidad de la lectura que usar una carcasa para marcar los límites de las palabras. IfYouDonTBelieveMe, CompareThisSentenceWithThePreviousOneAndTellMeWhichIsEasierToRead. (Y, por supuesto, no hay separación visualallistheworst).
  • Las letras minúsculas tienen formas más variadas que las mayúsculas, lo que a su vez conduce a formas de palabras más diversas. Esto hace que el texto escrito en minúscula sea más fácil de leer que el texto escrito en mayúscula.

Estas observaciones son fáciles de verificar e incluso han sido confirmadas por investigaciones científicas.

Además, la cultura UNIX prefiere convenciones que no solo sean fáciles de leer, sino también fáciles de escribir; Los piratas informáticos de UNIX suelen ser personas que pasan mucho tiempo usando su teclado, y muchos usan el sistema de escritura táctil oficial o algún derivado personal ajustado para la programación. El concepto de permanecer en la fila de inicio es importante de cualquier manera, por lo que a las personas les gusta evitar el uso de teclas que no se pueden alcanzar desde la fila de inicio, especialmente las teclas de mayúsculas.

Si combina estas tres restricciones, solo hay realmente una convención sensata, que es all-lowercase-with-dashes.

tdammers
fuente
3
@StephaneRolland: buscar nombres consistentes en cosas tan diferentes como el identificador en diferentes lenguajes de programación y nombres de archivos no es aconsejable. Sea coherente dentro de cada reino y cumpla con las convenciones establecidas, pero no intente encontrar una convención que las gobierne a todas. Las variables de Java no son nombres de tablas SQL, y tampoco son nombres de archivos.
tdammers
@StephaneRolland - Creo que la palabra que quieres es snake_case .
cchamberlain