Minuscules dans les noms de fichiers Linux

11

Comme je trouve que UpperCase est vraiment lisible pour la séparation des mots en première lettre dans les noms longs et complexes, j'ai tendance à donner certains de mes noms de fichiers Linux avec certains UpperCase. Principalement des exécutables, certains répertoires aussi.

Mais cela fait quelques semaines que j'ai remarqué que la grande majorité de tous les noms de fichiers dans ma distribution Linux sont en minuscules ...

J'ai donc fait une recherche sur Google il y a un instant, et j'ai trouvé cet article: Noms de fichiers Linux , qui stipule que l'on devrait toujours utiliser des minuscules dans le monde unix,

... Il est préférable de toujours utiliser des minuscules sous Linux, sauf si vous pouvez trouver une bonne raison d'utiliser des majuscules ou des majuscules. La plupart des utilisateurs d'Unix utilisent des minuscules presque exclusivement, mais à part ce point "culturel", il y a une autre bonne raison d'utiliser des minuscules. Si vous partagez ou accédez à un système de fichiers DOS avec Linux, DOS ne pourra pas voir les fichiers qui ont des noms de fichiers en majuscules ou en casse mixte ...

Est-ce vraiment le cas?

Stéphane Rolland
la source
2
oui, c'est vraiment le cas. les gens unix ne semblent pas trouver la touche Maj. mais il n'y a vraiment rien de justifiable pour soutenir les règles contre les cas mixtes. c'est juste une diatribe.
Ross Patterson

Réponses:

20

Les programmeurs détestent l'utilisation de la touche Maj (et le verrouillage des majuscules est quelque chose que beaucoup essaient de supprimer ). Poursuivant sur place qui dit "toujours utiliser des minuscules" ...

Il est préférable de toujours utiliser des minuscules sous Linux, sauf si vous pouvez penser à une bonne raison d'utiliser des majuscules ou des majuscules. La plupart des utilisateurs d'Unix utilisent des minuscules presque exclusivement, mais à part ce point "culturel" , il y a une autre bonne raison d'utiliser des minuscules. Si vous partagez ou accédez à un système de fichiers DOS avec Linux, DOS ne pourra pas voir les fichiers qui ont des noms de fichiers en majuscules ou en casse mixte.

La raison principale en est que si vous transférez deux fichiers séparés par une seule casse vers un système insensible à la casse, des choses confuses peuvent se produire sur la machine insensible.

Les fichiers sur votre machine Linux sont les vôtres. Faites-en autant que vous le souhaitez d'une manière qui vous convient.

J'ai découvert qu'une convention consistant à utiliser des majuscules pour la première lettre d'un répertoire me permet de les parcourir plus facilement . Faire un «ls» dans le répertoire place automatiquement tous les répertoires en haut de la liste et sépare les répertoires des fichiers, ce qui les rend plus faciles à voir et à parcourir. Mais encore une fois, c'est pour moi - faites ce qui fonctionne pour vous .


la source
1
DOS? Vraiment? Ce n'est plus pertinent.
Maximus Minimus
3
@ mh01 J'avais l'habitude de considérer EBCDIC comme non pertinent jusqu'à l'année dernière, j'ai dû faire face à un système qui envoyait ce jeu de caractères plutôt que ascii. J'ai vu des systèmes OpenVMS autour (la version la plus récente était il y a seulement 2 ans, pas mal pour quelque chose qui avait une première version il y a 35 ans) ... et son système de fichiers est toujours insensible à la casse. Apparemment, les Mac ont à la fois la casse et la casse (et Steam et Photoshop n'aiment pas les systèmes de fichiers sensibles à la casse sur le Mac ). Insensible à la casse est vivant.
3
Sans oublier la grande majorité des machines de bureau exécutant des systèmes de fichiers Windows insensibles à la casse.
Kilian Foth, le
Bon point à propos de l'insensibilité à la casse par rapport à la préservation de la casse, mais si vous avez des fichiers différents qui ne diffèrent que par la casse du nom de fichier, je pense qu'il y a des problèmes autres que le transfert vers des systèmes de fichiers insensibles à la casse qui pourraient causer de la confusion. ..
un CVn du
9

Les usages «orientés vers le consommateur» (quoi que cela puisse signifier) ​​ont tendance à utiliser la casse de titre, même dans le monde Unix. C'est plus souvent le cas lorsque l'organisation en question a des personnes dont le travail consiste à penser à l'expérience utilisateur.

Par exemple, mon bureau Ubuntu a des dossiers dans le répertoire appelé Downloads, Pictures, Documents, etc. va de même pour mon ordinateur portable OSX (oui, il compte, c'est BSD). Bien qu'il soit utile de souligner qu'Apple va jusqu'à nommer ses propres répertoires système avec titlecase (par exemple /Library/Audio/Apple Loops/), tout en gardant le système de fichiers de base "classique" tout en minuscules (par exemple /usr/libexec/dtrace/). Mais aucune distribution Linux à ma connaissance n'utilise titlecase n'importe où en dehors du répertoire personnel de l'utilisateur.

Vraisemblablement, la distinction est que les répertoires que vous attendez des gens à regarder sont en majuscules, tandis que les endroits que vous attendez des gens ne vont pas explorer sont en minuscules. Une distinction similaire semble être en jeu avec Ubuntu; seuls les répertoires qui devraient apparaître comme une liste de dossiers dans une fenêtre Nautilus sont en majuscules, tandis que les noms de dossiers qui devraient être saisis (non parcourus) sont tous inférieurs.

Et c'est le nœud du problème; titlecase ou majuscule est plus difficile à taper. Mais titlecase semble mieux dans une liste ou un ensemble de dossiers en mosaïque. Alors, choisissez en conséquence. Les gens Linux traitent fréquemment en ligne de commande, même pour des tâches banales, donc les minuscules ont plus de sens.

tylerl
la source
bon point, mais j'ajouterais que les espaces ou les traits de soulignement sont plus faciles à lire que les cas de chameau ou de Pascal
jk.
4

A propos de l'argument DOS: les systèmes de fichiers DOS / Windows ne voient vos fichiers quel que soit le cas, et ils peuvent gérer leur bien. Les très anciens systèmes de fichiers DOS ne prennent en charge rien au-delà des noms de fichiers 8.3, mais même FAT32 peut gérer les noms de fichiers longs. Le seul problème est que même si les systèmes de fichiers DOS / Windows conservent la casse (dans la plupart des cas; certaines versions ignorent la casse pour les noms de fichiers qui tiennent au format 8.3), ils ne sont pas sensibles à la casse lorsqu'il s'agit de comparer des noms de fichiers; Windows considère que "foobar", "Foobar", "FOOBAR" et "fOObAr" sont le même nom de fichier.

Cela dit, c'est surtout une question de culture, mais il y a un certain contexte. La raison pour laquelle cette convention particulière est bloquée dans le monde UNIX est la convivialité . Il y a ici deux arguments principaux:

  • Pour séparer les mots, il est préférable de séparer les mots à l'aide de caractères non alphabétiques plutôt que d'utiliser une casse pour marquer les limites des mots. IfYouDonTBelieveMe, CompareThisSentenceWithThePreviousOneAndTellMeWhichIsEasierToRead. (Et bien sûr, novisualseparationatallistheworst).
  • Les lettres minuscules ont des formes plus variées que les majuscules, ce qui conduit à son tour à des formes de mots plus diverses. CELA REND LE TEXTE ÉCRIT EN MAJUSCULE PLUS FACILE À LIRE QUE LE TEXTE ÉCRIT EN MAJUSCULE.

Ces observations sont faciles à vérifier et ont même été confirmées par la recherche scientifique.

De plus, la culture UNIX préfère les conventions qui sont non seulement faciles à lire, mais aussi faciles à écrire; Les pirates UNIX sont généralement des personnes qui passent beaucoup de temps à utiliser leur clavier, et beaucoup utilisent soit le système officiel de saisie tactile, soit un dérivé personnel modifié pour la programmation. Le concept de rester sur la ligne d'accueil est important dans les deux cas, de sorte que les gens aiment éviter d'utiliser des touches qui ne sont pas accessibles depuis la ligne d'accueil, en particulier les touches de décalage.

Si vous combinez ces trois contraintes, il n'y a vraiment qu'une seule convention sensée, qui l'est all-lowercase-with-dashes.

tdammers
la source
3
@StephaneRolland: il n'est pas sage de rechercher des noms cohérents entre des éléments différents comme l'identifiant dans différents langages de programmation et noms de fichiers. Soyez cohérent dans chaque domaine et respectez les conventions établies, mais n'essayez pas de trouver une convention pour les gouverner toutes. Les variables Java ne sont pas des noms de table SQL et ce ne sont pas non plus des noms de fichiers.
tdammers
@StephaneRolland - Je crois que le mot que vous voulez est snake_case .
cchamberlain