关于多平台以及git仓库的文件命名

个人同时在用windows、wsl和termux的同时遇到了一个很头疼的问题,我相信许多人都遇到过——文件命名。
个人有使用特殊符号将文件在名称排列下置顶的习惯,之前使用"“进行置顶,但实际使用中发现必须进行转义。然后打算使用”-“,结果在linux中创建都是问题。在之后查阅过后发现许多符号都会出现冲突。
个人是编程小白,想问一下哪种符号作为文件名或文件夹名在不同平台、不同语言中冲突最少。我现在的第一候选是下划线”_"。
同时打算开个讨论,关于文件命名的踩坑及分享大佬们的策略。

Windows 不能使用下列9个字符:?\ * | “ < > : /

Linux 最好不要用 如空格符,制表符,退格符和字符:? @ # $&()|; ‘’“”<>+ -等;

所以 _ 是最好的.

2 个赞

驼峰命名或下划线

Linux中比较广泛的实践是用数字

1 个赞

用英文的点或下划线或逗号做为分隔符,用 16 进制做文件前缀(默认按字符升序)。

lssort, dir 默认是字符升序排序,这跟 ASCII 对应的二进制大小有关。

sort -r 是降序

数字 [0, 9] 对应的是 [0011 0000, 0011 1001], 即 [48, 57]
字母 [A, Z] 对应的是 [0100 0001, 0101 1010], 即 [65, 90]
字母 [a, z] 对应的是 [0110 0001, 0111 1010], 即 [97, 122]

一些分隔符对应的二进制的值,在文件命名时可以参考下,可能会影响排序。

二进制 十进制 十六进制 符号 描述
0010 0000 32 20 空格
0010 1100 44 2C , 逗号
0010 1101 45 2D - 减号
0010 1110 46 2E . 句号
0101 1111 95 5F _ 下划线

空格 < 逗号 < 减号 < 句号 < 数字 < 大写字母 < 下划线 < 小写字母

默认升序,所以值越小越靠前。

Windows 资源管理器也可以修改为以 16 进制排序: