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

**URL:** <https://meta.appinn.net/t/topic/26402>\
**Category:** 讨论分享\
**Created:** [2021 年9 月 28 日 02:37 UTC](https://meta.appinn.net/t/topic/26402 "2021-09-28T02:37:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![God-Asimov](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/god-asimov/32/18280_2.png) [@God-Asimov](https://meta.appinn.net/u/God-Asimov)\
**Post date:** [2021 年9 月 28 日 02:37 UTC](https://meta.appinn.net/t/topic/26402/1 "2021-09-28T02:37:41Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![xiaokonglong](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/xiaokonglong/32/908_2.png) [@xiaokonglong](https://meta.appinn.net/u/xiaokonglong)\
**Post date:** [2021 年9 月 28 日 02:42 UTC](https://meta.appinn.net/t/topic/26402/2 "2021-09-28T02:42:10Z")

</div>

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

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

所以 \_ 是最好的.

---

<div class="post-metadata">

**Author:** ![liu](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/liu/32/60234_2.png) [@liu](https://meta.appinn.net/u/liu)\
**Post date:** [2021 年10 月 6 日 14:41 UTC](https://meta.appinn.net/t/topic/26402/3 "2021-10-06T14:41:47Z")

</div>

驼峰命名或下划线

---

<div class="post-metadata">

**Author:** ![yuuka](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/y/49beb7/32.png) [@yuuka](https://meta.appinn.net/u/yuuka)\
**Post date:** [2021 年10 月 7 日 04:53 UTC](https://meta.appinn.net/t/topic/26402/4 "2021-10-07T04:53:01Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![bcaso](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/bcaso/32/20852_2.png) [@bcaso](https://meta.appinn.net/u/bcaso)\
**Post date:** [2022 年3 月 12 日 10:15 UTC](https://meta.appinn.net/t/topic/26402/5 "2022-03-12T10:15:40Z")

</div>

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

`ls`，`sort`, `dir` 默认是字符升序排序，这跟 [ASCII 对应的二进制](https://www.cnblogs.com/stxs/p/8846545.html)大小有关。

`sort -r` 是降序

```auto
数字 [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 进制排序：

> [@文件管理器的素质](https://meta.appinn.net/t/topic/28560/27):
>
> TC: 用 [VimDesktop](https://github.com/goreliu/vimdesktop) 使用 vim 快捷键操作文件，用了就回不去。 支持纯字符排序(16 进制)，所以我把文件的前缀都换成 16 进制了，16 进制排序是除了Windows 资源管理器外的所有资源管理器的逻辑。16 进制前缀排序，可以减少前缀字符数量，Linux 下的 ls 默认就是 16 进制排序。 windows 资源管理器改为 16 进制排序的方法： [https://www.smwcentral.net/?p=viewthread&t=104294&page=1&pid=1554219#p1554219](https://www.smwcentral.net/?p=viewthread&t=104294&page=1&pid=1554219#p1554219) 相关内容：
