以数字开头命名某些文件有什么原因吗?
我了解命名约定,但我想知道为什么不将其命名为 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
最佳答案
了解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
按时间顺序排列)
关于linux - 为什么Linux中有些文件名以数字开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47407783/