Linux文件名小写的好处(转)

说明:来自老阮的为什么文件名要小写的文章,其实我觉得应该说是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 -i "*.HtmL"

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

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

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

参考:

http://www.ruanyifeng.com/blog/2017/02/filename-should-be-lowercase.html(以上内容转自此篇文章)

原文地址:https://www.cnblogs.com/EasonJim/p/8120688.html

时间: 2024-10-02 23:16:31

Linux文件名小写的好处(转)的相关文章

linux文件名乱码时删除或改名的方式(转载)

转自:http://www.linuxsa.cn/when-linux-file-name-topsy-turvy-deleted-or-renamed.html linux文件名乱码时删除或改名的方式 当......一堆......文件出现乱码时,你想用脚本把他们改名,结果又发现字符处理工具awk等都对这些玩意没有办法,无比蛋疼啊,怎么办泥,我有办法: 1.ls -i 查找到这些乱码文件的inode号,比如说22588202.find . -inum 2258820 -exec mv {} n

Linux文件名匹配之通配符使用

Linux文件通配符:当在使用命令行时,有很多时间都用来查找你所需要的文件,如ls.find等. shell提供了一套完整的字符串模式匹配规则,或者称之为元字符,当shell遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名,我理解这可以称为通配符. 通配符 作用 * 匹配零个或多个字符 ? 匹配任何单个字符 ~ 当前用户家目录 ~mage 用户mage家目录 ~+ 当前工作目录 ~- 前一个工作目录 [0-9] 匹配数字范围 [a-z] 字

linux文件名通配符:* ? []

通配符命令简介: 匹配符合相关条件的符号,匹配文件名查找. 通配符类型: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围之外的任意单个字符 [:space:]:空白字符 [:punct:]:标点符号 [:lower:]:小写字母 [:upper:]:大写字母 [:alpha:]:大小写字母 [:digit:]:数字 [:alnum:]:数字和大小写字母 通配符命令实例练习: 1.创建a123,cd6,c78m,cl my,m.z,k 6

linux文件名查找which,whereis,locate

1. 文件名查找 使用find查询时,由于磁盘查询,所以速度较慢, 所以linux下查询更常使用which, whereis, locate来查询,由于是利用数据库查询,所以速度很快. 2. which 我们常用的ls命令,如果我们想知道这些常用命令放在哪儿, 就使用which命令来查询地址. which使用PATH 环境变量去查找文件名, which -a 返回所有的查到的命令, 默认返回第一条. $ which grep /bin/grep $ which ll alias ll='ls -

linux文件名匹配——通配符使用

背景:在linux使用过程中,经常需要查找文件,对命令中的通配符pattern和正则表达式的区分不是很清楚.有必要好好研究一下. 1 扫盲 1.1 通配符和正则表达式 当在使用命令行时,有很多时间都用来查找你所需要的文件,如ls find等. S h e l l提供了一套完整的字符串模式匹配规则,或者称之为元字符,当s h e l l遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名,我理解这可以称为通配符. 通配符与正则表达式是有区别的,简

Linux 文件名 按照日期 取最大最小时间值

linux ls只显示文件名或者文件夹名_qingfengxd1的博客-CSDN博客https://blog.csdn.net/qingfengxd1/article/details/90261066 ls如何只显示文件名_IAlexanderI的专栏-CSDN博客https://blog.csdn.net/IAlexanderI/article/details/79021312 linux ls 只显示文件或者文件夹_小龙王2010-CSDN博客https://blog.csdn.net/xi

Linux 文件名颜色

在Linux中,文件的颜色都是有含义的.其中, 蓝色表示目录 绿色表示可执行文件 红色表示压缩文件 浅蓝色表示链接文件 灰色表示其它文件 红色闪烁表示链接的文件有问题了 黄色是设备文件,包括block, char, fifo. 用"dircolors -p"命令可以看到缺省的颜色设置,包括各种颜色和"粗体",下划线,闪烁等的定义,当然,你还可以在环境变量"$LS_COLORS"上进行修改.

linux文件名通配

通配符是一种特殊语句,用来模糊搜索文件.当查找文件夹或目录时,可以使用它来代替一个或多个真正字符 通配符:        *: 匹配任意长度的任意字符(包令0个字符)         [[email protected] tt]# ls                 ab  abb  abc  abm  xab  # 如有文件         [[email protected] tt]# ls ab*             ab  abb  abc  abm    # 匹配以ab开头后面跟

linux 文件名、目录

linux不靠扩展名区分文件类型,扩展名只是给人看的:windows依靠扩展名区分文件类型,然后打开. /dev 设备目录/boot     系统启动目录/etc 配置文件保存目录/media./mnt./misc 挂载目录,实际可以自己随便定义一个目录作为挂载目录/opt 安装第三方软件位置,但现在主流使用 /usr/local 作为替代./proc./sys   这两个目录中的数据并不保存在硬盘当中,而是保存在内存当中.所以不要往这两个目录里保存内容,重启丢失. 原文地址:https://w