为什么文件名要小写?

上周,《中文技术文档写作规范》加入了文件的命名规则。

"文件名建议只使用小写字母,不使用大写字母。"

"为了醒目,某些说明文件的文件名,可以使用大写字母,比如READMELICENSE。"

网友看见了,就提问为什么文件名要小写?

说实话,虽然这是 Linux 传统,我却从没认真想过原因。赶紧查资料,结果发现四个很有说服力的理由,支持这样做。

下面就是这四个理由。

一、可移植性

Linux 系统是大小写敏感的,而 Windows 系统和 Mac 系统正好相反,大小写不敏感。一般来说,这不是大问题。

但是,如果两个文件名只有大小写不同,其他都相同,跨平台就会出问题。

  • foobar
  • Foobar
  • FOOBAR
  • fOObAr

上面四个文件名,Windows 系统会把它们都当作foobar。如果它们同时存在,你可能没办法打开后面三个文件。

另一方面,在 Mac 系统上开发时,有时会疏忽,写错大小写。


// 正确文件名是 MyModule.js
const module = require('./myModule');

上面的代码在 Mac 上面可以运行,因为 Mac 认为MyModule.jsmyModule.js是同一个文件。但是,一旦代码到服务器运行就会报错,因为 Linux 系统找不到myModule.js

如果所有的文件名都采用小写,就不会出现上面的问题,可以保证项目有良好的可移植性。

二、易读性

小写文件名通常比大写文件名更易读,比如accessibility.txt就比ACCESSIBILITY.TXT易读。

有人习惯使用驼峰命名法,单词的第一个字母大写,其他字母小写。这种方法的问题是,如果遇到全部是大写的缩略词,就会不适用。

比如,一个姓李的纽约特警,无论写成NYPoliceSWATLee还是NyPoliceSwatlee,都怪怪的,还是写成ny-police-swat-lee比较容易接受。

三、易用性

某些系统会生成一些预置的用户目录,采用首字母大写的目录名。比如,Ubuntu 在用户主目录会默认生成Downloads、 PicturesDocuments等目录。

Mac 系统更过分,一部分系统目录也是大写的,比如/Library/Audio/Apple Loops/

另外,某些常见的配置文件或说明文件,也采用大写的文件名,比如MakefileINSTALLCHANGELOG.Xclients.Xauthority等等。

所以,用户的文件都采用小写文件名,就很方便与上面这些目录或文件相区分。

如果你打破砂锅问到底,为什么操作系统会采用这样的大写文件名?原因也很简单,因为早期 Unix 系统上,ls命令先列出大写字母,再列出小写字母,大写的路径会排在前面。因此,如果目录名或文件名是大写的,就比较容易被用户首先看到。

四、便捷性

文件名全部小写,还有利于命令行操作。比如,某些命令可以不使用-i参数了。


# 大小写敏感的搜索
$ find . -name abc
$ locate "*.htmL"

# 大小写不敏感的搜索
$ find . -iname abc
$ locate "*.HtmL"

另外,大写字母需要按下 Shift 键,多多少少有些麻烦。如果文件名小写,就不用碰这个键了,不仅省事,还可以提高打字速度。

程序员长时间使用键盘,每分钟少按几次 Shift,一天下来就可以省掉很多手指动作。长年累月,也是对自己身体的一种保护。

综上所述,文件名全部使用小写字母和连词线(all-lowercase-with-dashes),是一种值得推广的正确做法。

(正文完)

时间: 2024-09-19 09:58:38

为什么文件名要小写?的相关文章

如何配置Git支持大小写敏感和修改文件名中大小写字母呢?(转)

1. 在新建代码文件时,不注意把文件名应该小小写搞错了2. 文件已经push到远程了3. 在windows下面将文件名字改为全小写 改好后,在Git中没有任何反应,使用git status时,如果遇到下面情况,说明GIT大小写不敏感,如下:   1 2 3 4 5 6 [rock@ROCK-PC]$ /d/WampServer/www/hexu.org/code (dev) $ git status On branch master Your branch is up-to-date with

CI框架笔记

一.目录结构 ci_demo ├─myapp 应用主目录 │ ├─autoload.php 自定义的自动加载文件(可选) │ ├─myapp.php应用入口文件,拷贝index.php得到,注意修改$application_folder = 'myapp'; │ ├─cache 缓存目录 │ ├─config 配置目录,包括autoload,database,routes等 │ ├─controllers 控制器目录,可以分为api和web部分(命名自定义),也可以不分 │ │ ├─api ap

Robots META标签和robots.txt文件

我们知道,搜索引擎都有自己的"搜索机器人"(ROBOTS),并通过这些ROBOTS在网络上沿着网页上的链接(一般是http和src链接)不断抓取资料建立自己的数据库. 对于网站管理者和内容提供者来说,有时候会有一些站点内容,不希望被ROBOTS抓取而公开.为了解决这个问题,ROBOTS开发界提供了两个办法:一个是robots.txt,另一个是The Robots META标签. 一.robots.txt1.什么是robots.txt? robots.txt是一个纯文本文件,通过在这个文

OSS报表系统实训笔记

笔记    OSS报表系统 实训笔记                   实训公司:中科天地 (王海格,老师超好)                                     Edited by Hen Egg ,Michelangelo 2005-2-21 8:00 JasperReport 开支 面向OO 应用服务器 Java 开源数据库 J2EE 需求分析     成绩: 课堂表现 项目     项目: l         Java平台 (1)       (编程语言)开发环境

网页制作应注意的几个事项

--主页备份 1.txt 文本 2.scan 扫描图片 3.psd 设计原图(包括AI.Flash.Banner等等) 4.htm 网页文件 5.htm_old* 旧的网页文件备份 --html的目录结构 1.打开网页排版软件Dreamweaver的site网站管理视窗,按栏目内容建立子目录: 2.在每个主目录下都建立独立的images目录,不要将所有文件都存放在根目录下: 3.所有的文件夹名和文件名用小写字母,并取与中文意义对应的英文文件名. --HTML源代码 1.字符集的设定:中文版用GB

浅谈网站robots的写法

站长的工作是设计精美的网站,为大众展现网站丰富多彩的内容.当然,我们也希望精心设计的网站获得理想的排名,这就要求我们去研究搜索引擎排名规律,最大程度的获得机会展现给客户.然而,搜索引擎种类很多,有时候,我们对某一种搜索引擎的排名很好,却在另外的搜索引擎上面获得不到一样的排名,原因是各个搜索引擎规则不一样.为此,有人复制出相同的内容以应付不同搜索引擎的排名规则.然而,一旦搜索引擎发现站内有大量"克隆"的页面,就会给以惩罚,不收录这些重复的页面.另一方面,我们网站的内容属于个人私密文件,不

WinRAR使用技巧汇总

解压缩 RAR 格式文件的最经典做法是:双击压缩文件,再单击调出 winrar 程序的"解压到"按钮,然后"确定"就可以解压至当前一个同名文件夹中了.如果这个待解压的 RAR 文件比较大的话,就只能等待一会了.虽然可以选择"后台"的运行方式,但终归它在工作. 打开 WinRAR ,单击"选项→设置",再选择"路径"选项卡,看到最上面的"临时文件解压的文件夹"了吗?就是它耽误了压缩的时间,

用WinRAR做自解压exe文件的方法

发掘 WinRAR 的"自解压安装"功能 RAR 的自动解压文件功能使压缩包也能像 Setup 程序那样,双击后显示一个软件许可,然后自动在指定位置解压文件,最后自动执行软件. ·软件解密包--软件解密需要将很多文件拷贝到安装目录覆盖原文件,烦琐的操作非常适合制作自动解密包 ·自动演示包--用 PowerPoint 打包功能会生成众多文件,做成自动演示包后,方便文稿的演示与文件的管理 ·客户资料包--当您的客户不太懂电脑时,把资料做成双击一下就可以自动解压执行的文件,您和客户都会喜欢的

CI框架装载器Loader.php源码分析_php实例

顾名思义,装载器就是加载元素的,使用CI时,经常加载的有: $this->load->library() $this->load->view() $this->load->model() $this->load->database() $this->load->helper() $this->load->config() $this->load->add_package_path() 复制代码 代码如下: /**  * L