Linux文件名中的小写字母


11

当我发现UpperCase对于复杂的长名称中的首字母单词分隔确实可读时,我倾向于使用一些UpperCase来提供一些Linux文件名。通常是可执行文件,也有一些目录。

但是已经有几个星期我说过,Linux distrib中所有文件名的绝大多数都是小写的...

因此,我刚才进行了一次谷歌搜索,然后发现了这篇文章:Linux File Names,指出在Unix世界中应该始终使用小写字母,

...最好在Linux中始终使用小写字母,除非您有充分的理由使用大写字母或混合大小写。大多数Unix用户几乎都使用小写字母,但是除了这种“文化”观点之外,还有另一个充分理由使用小写字母。如果要与Linux共享或访问DOS文件系统,则DOS将无法查看具有大写或大小写混合的文件名的文件...

真的是这样吗?


2
是的,确实如此。Unix人似乎找不到换档键。但是实际上没有任何理由支持针对混合情况的规则。这只是一个咆哮。
罗斯·帕特森

Answers:


20

程序员不喜欢使用Shift键(大写锁定是许多人试图消除的东西)。继续说“总是使用小写字母”的地方...

最好在Linux中始终使用小写字母,除非您有充分的理由使用大写字母或混合大小写。大多数Unix用户几乎都使用小写字母,但除了这种“文化”观点之外,还有一个充分的理由使用小写字母。如果要与Linux共享或访问DOS文件系统,则DOS将无法查看具有大写或大小写混合的文件名的文件。

这样做的主要原因是,如果要将仅由大小写分隔的两个文件传输到不区分大小写的系统,则会在不敏感的计算机上发生混乱的情况。

您的linux机器上的文件是您的。按照自己喜欢的方式随心所欲地处理它们。

我发现使用大写字母作为目录前导字母的约定使更容易浏览它们。在目录中执行“ ls”会自动将所有目录置于列表的顶部,并将目录与文件分开,从而更易于查看和导航。但这又是对我来说 -做对您有用的事情


1
DOS?真?不再相关了。
Maximus Minimus

3
@ mh01我曾经认为EBCDIC无关紧要,直到去年我不得不处理发送该字符集而不是ascii的系统。我已经看到过OpenVMS系统(最新版本只有2年前,对于35年前的第一个版本来说还不错)...而且其文件系统仍然不区分大小写。显然,Mac区分大小写和不区分大小写(并且Steam和Photoshop 不喜欢Mac上区分大小写的文件系统)。不区分大小写的命令仍然有效。

3
更不用说绝大多数运行不区分大小写的Windows文件系统的台式机了。
Kilian Foth,

关于不区分大小写与保留大小写的好处是,但是,如果您有不同的文件,但文件名的大小写仅不同,则我认为除了转移到不区分大小写的文件系统之外,还有其他问题,可能会引起混淆。 ..
CVn

9

甚至在Unix世界中,“面向消费者”的用法(可能意味着)都倾向于使用Title Case。当所讨论的组织的人员的全部工作是考虑用户体验时,通常会出现这种情况。

例如,我的Ubuntu桌面有所谓的主目录文件夹DownloadsPicturesDocuments等也是一样的我的OSX的笔记本电脑(是的,它计算;它的BSD)。尽管值得一提的是,Apple尽量使用标题大小写(例如/Library/Audio/Apple Loops/)来命名自己的系统目录,同时将“经典”基本文件系统都保留为小写(例如/usr/libexec/dtrace/)。但是我知道没有Linux发行版在用户主目录之外的任何地方使用标题。

大概的区别是你期望的人实际上看那个目录是首字母大写,而地方,你希望人们不会去探索都是小写。Ubuntu似乎也有类似的区别。仅预期在Nautilus窗口中显示为文件夹列表的目录为标题大小写,而预期键入(未浏览)的文件夹名称都较低。

这就是关键所在;标题或大写字母更难键入。但是标题列表在一个或一组平铺文件夹中看起来更好。因此,请相应选择。Linux人员经常在命令行中处理即使是平凡的任务,因此小写字母更有意义。


很好,但我要补充一点,即空格或下划线比骆驼或Pascal字母
jk)

4

关于DOS的说法:DOS / Windows的文件系统看到你的文件,无论案件的,他们可以处理他们的罚款。很老的DOS文件系统不支持8.3文件名以外的任何文件,但是即使FAT32都可以处理长文件名。唯一的问题是,尽管DOS / Windows文件系统会保留大小写(在大多数情况下;某些格式会忽略8.3格式的文件名的大小写),但是在比较文件名时它们并不区分大小写;Windows将“ foobar”,“ Foobar”,“ FOOBAR”和“ fOObAr”视为相同的文件名。

就是说,这主要是一种文化,但是有一定的背景。这种特殊约定卡在UNIX世界中的原因是可用性。这里有两个主要论点:

  • 使用非字母字符分隔单词比使用大写字母标记单词边界更好地提高了阅读舒适度。如果您不相信我,可以将此句子与上一个和告诉我哪个更容易阅读。(当然,也没有视觉上的分离。)
  • 小写字母比大写字母具有更多不同的形状,这又导致了更多的单词形状。这使得以小写形式编写的文本比以大写形式编写的文本更容易阅读。

这些观察很容易验证,甚至被科学研究证实。

另外,UNIX文化更喜欢不仅易于阅读而且易于编写的约定。UNIX黑客通常是花费大量时间使用键盘的人,许多人使用官方的触摸输入系统或为编程进行了一些调整的个人衍生产品。无论哪种方式,停留在主行上的概念都很重要,因此人们喜欢避免使用无法从主行到达的键,尤其是shift键。

如果将这三个约束结合在一起,则实际上只有一个明智的约定,即all-lowercase-with-dashes


3
@StephaneRolland:在诸如不同编程语言和文件名的标识符之类的不同事物之间进行一致的命名是不明智的。在每个领域内保持一致,并遵守既定惯例,但不要试图找到一个惯例来统治所有惯例。Java变量不是SQL表名,它们也不是文件名。
tdammers

@StephaneRolland-我相信您想要的单词是snake_case
cchamberlain
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.