为什么Linux中的某些文件名以数字开头?

时间:2017-11-21 07:45:52

标签: linux unix

命名一些以数字开头的文件背后的原因是什么? 我知道命名约定,但我想知道为什么不将它命名为haproxy?为什么30-haproxy.conf而不是29.5_haproxy.conf

[@happiness ~]$ ls /etc/rsyslog.d/
00-iptables.conf  21-cloudinit.conf  30-haproxy.conf  haproxy.conf  listen.conf

1 个答案:

答案 0 :(得分:2)

阅读path_resolution(7)以了解常规文件路径的方式。内核只关心/ NUL ....并且特别了解...个条目。 文件路径甚至可以包含一个控制字符(如换行符),但这很恶心。

在实践中,许多脚本和程序采用了一些约定(以及FHS文档中的一些约定。)

(今天,文件路径是UTF-8,但是内核不知道那个约​​定,你最好只使用可打印的,非空格的ASCII字符;我建议只使用字母,数字,以及其他一些标点符号 - 但要避免*\?以及$~,因为它们对shell有特殊意义)

由于shell globbing(请参阅glob(7))按照字母数字顺序对文件名进行排序,假设读取该目录的程序(例如某些shell)具有数字前缀是有意义的“排序”它们以字母数字顺序订购条目。然后,您希望所有这些数字前缀具有相同的位数(在您的示例中为两个)。

请注意,当读取基础目录(使用opendir(3) + readdir(3)等...)时,目录条目无序并以任意顺序呈现。正是程序读取该目录(您的shell,或ls(1)等...)正在对条目进行排序。有时你可以禁用那种排序(例如使用ls -f)或进行另一次排序(例如按时间顺序排列ls -t