我最近入职了新公司,公司暂时 mac 缺货,于是我需要用一段时间 windows 做开发机。
本来我觉得:“反正开发代码,操作系统就是做一个 IDE 的容器,用 windows 也没什么问题。”
可是马上我就被打脸了: 公司的一个项目里,名字叫做 con 的文件统统 checkout 不下来(无论后缀为什么
google 了一下,发现 con 居然是 windows 的保留字,不允许命名文件或文件名为 con/nul/aux 等等。。
于是,我只能在虚拟机里开 ide 来开发代码了。。。
1
kindjeff 2020 年 10 月 16 日 第一次发现这件事的时候我还是小男孩,如今已经是俩个孩子的妈了
|
2
Yumwey 2020 年 10 月 16 日 我证明,楼上是我兄弟。
|
4
jiumingzhu 2020 年 10 月 16 日
|
5
yangheng4922 2020 年 10 月 16 日
git bash touch con 可以创建 con 的文件
|
6
xiangyuecn 2020 年 10 月 16 日
|
7
youla 2020 年 10 月 16 日
用 git-bash
mkdir con 可以。 还有命名 nul 也不行哦。 |
8
youla 2020 年 10 月 16 日
才发现帖子里提到了,一目五十行没注意。
|
9
Tink PRO CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
|
10
Raven316 2020 年 10 月 16 日
|
11
felixcode 2020 年 10 月 16 日
所以 Windows 不适合开发?开发还得用 Mac ?
|
12
azkaban 2020 年 10 月 16 日
在 wsl 里试了一下,建啥目录都没问题
|
13
exceloo 2020 年 10 月 16 日
难道你们不知道以前 win 系统在运行中输入 /con/con 会导致死机吗?
暴露年龄了。。。 |
15
syuraking 2020 年 10 月 16 日
DOS 时代 con 就是设备的标识符,只能说明,你不懂微软的 DOS……
|
16
xiri 2020 年 10 月 16 日 via Android
这是 dos 时代遗留下来的,微软为了兼容性一直没有修改
|
17
lovecy 2020 年 10 月 16 日
我再说一个事,SVN 上面有两个目录,名字一样但是大小写不同,checkout 到 windows 机器上会因为重名,导致两个目录的内容被奇怪的合并到一起
|
18
hakono 2020 年 10 月 16 日 via Android
不是,楼主你为啥不在 wsl/wsl2 下开发
|
19
BostonCorbett 2020 年 10 月 16 日
@kindjeff 什么意思?
|
20
jim9606 2020 年 10 月 16 日
感觉这是文件 API 的路径处理出现歧义导致的,资源管理器不能创建,删不掉,能显示文件存在,但文件属性不能正常显示。
看了下这个问答( https://stackoverflow.com/questions/17883481/delete-a-file-named-nul-on-windows),用 UNC path 可以解决。 @jiumingzhu 的文档也只是说不建议用保留字,至少文件系统本身并没有这个限制。 你要知道,以前的资源管理器是不允许新建句号开头的文件的,例如".nomedia"这样的,纯属自己设限。 |
21
realpg PRO 2002 年我就会
netstat -anop tcp | find ":80" > con |
23
lithiumii 2020 年 10 月 16 日 via Android
win 不能建立,但可以用 wsl 建立
但也没用,回到 win 里也不能访问,好像还不能删除 |
24
wangxiaoaer 2020 年 10 月 16 日
多谢楼主,以前还真不知道这个。
|
25
guanaco 2020 年 10 月 16 日
copy con ,好久没用了
|
27
ysc3839 2020 年 10 月 16 日 via Android
@lxilu 顺带一提,Windows 有个注册表项控制文件系统是否区分大小写,但是别开!我之前开了之后蓝牙直接用不了了……
|
28
by73 2020 年 10 月 16 日
确实很烦人。。之前在 Windows 下 checkout kernel 就出现了这个问题。。只能说 Windows 兼容性太强了(
后来改用了虚拟机 = = |
29
lihongming 2020 年 10 月 16 日 via iPhone
宁可装个 Linux 桌面版也不要用 Windows 做开发,坑太多了。
现在除了 Windows 都是类 Unix 的天下,传说将来 Windows 也要像 Mac 一样在类 Unix 系统的基础上重构。 |
30
locoz 2020 年 10 月 17 日 via Android
还有冒号也是,Linux 和 Mac 下都可以使用,但 Windows 是不行的。
|
32
ysc3839 2020 年 10 月 17 日 via Android
@lxml Windows 用的 NTFS 是大小写敏感的,且不能关闭,Windows 是在别的层次做了大小写处理。
macOS 的文件系统才是可选是否大小写敏感,并且默认选的是不敏感。 |
34
baobao1270 2020 年 10 月 17 日
其实从 NTFS/ReFS 的层面上来说,它们只要文件名里没有 "/" or "\0" 其他文件名都可以,毕竟这两个 FS 可以在 LINUX 下面跑。这层限制只是 Explorer 层面以及一部分 Windows API 层面的限制。
|
35
changwei 2020 年 10 月 18 日 via Android
以前 windows 服務器上面的不死僵尸 webshell 就是利用文件扩展名带这些保留字符实现隐藏和免杀的
|