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

cyb*_*acy 1 unix linux

命名某些以数字开头的文件有什么原因吗?我了解命名约定,但我想知道为什么不将其命名为 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
Run Code Online (Sandbox Code Playgroud)

Bas*_*tch 5

阅读path_resolution(7)以了解文件路径的通用性。内核只关心/and NUL.... 并且专门理解.and..条目。文件路径甚至可以包含单个控制字符(如换行符),但这很恶心。

在实践中,许多脚本和程序都采用一些约定FHS记录了其中一些约定)。

(现在,文件路径采用 UTF-8 格式,但内核不知道该约定,您最好仅使用可打印的非空格 ASCII 字符;我建议仅使用字母、数字和其他一些标点符号- 但避免*, \,?或许$还有 and~因为它们对 shell 有特殊含义)

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

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