个人同时在用windows、wsl和termux的同时遇到了一个很头疼的问题,我相信许多人都遇到过——文件命名。
个人有使用特殊符号将文件在名称排列下置顶的习惯,之前使用"“进行置顶,但实际使用中发现必须进行转义。然后打算使用”-“,结果在linux中创建都是问题。在之后查阅过后发现许多符号都会出现冲突。
个人是编程小白,想问一下哪种符号作为文件名或文件夹名在不同平台、不同语言中冲突最少。我现在的第一候选是下划线”_"。
同时打算开个讨论,关于文件命名的踩坑及分享大佬们的策略。
Windows 不能使用下列9个字符:?\ * | “ < > : /
Linux 最好不要用 如空格符,制表符,退格符和字符:? @ # $&()|; ‘’“”<>+ -等;
所以 _ 是最好的.
2 个赞
驼峰命名或下划线
Linux中比较广泛的实践是用数字
1 个赞
用英文的点或下划线或逗号做为分隔符,用 16 进制做文件前缀(默认按字符升序)。
ls
,sort
, 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 进制排序: