V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
牛客网
SakuraSa
V2EX  ›  程序员

windows 不能命名文件为 con

  •  
  •   SakuraSa · 14 天前 · 3838 次点击

    我最近入职了新公司,公司暂时 mac 缺货,于是我需要用一段时间 windows 做开发机。

    本来我觉得:“反正开发代码,操作系统就是做一个 IDE 的容器,用 windows 也没什么问题。”

    可是马上我就被打脸了: 公司的一个项目里,名字叫做 con 的文件统统 checkout 不下来(无论后缀为什么

    google 了一下,发现 con 居然是 windows 的保留字,不允许命名文件或文件名为 con/nul/aux 等等。。

    于是,我只能在虚拟机里开 ide 来开发代码了。。。

    35 条回复    2020-10-18 07:42:11 +08:00
    kindjeff
        1
    kindjeff   14 天前   ❤️ 29
    第一次发现这件事的时候我还是小男孩,如今已经是俩个孩子的妈了
    Yumwey
        2
    Yumwey   14 天前   ❤️ 1
    我证明,楼上是我兄弟。
    JJstyle
        3
    JJstyle   14 天前   ❤️ 3
    @kindjeff 你这小男孩是这么当妈的?!
    yangheng4922
        5
    yangheng4922   14 天前
    git bash touch con 可以创建 con 的文件
    xiangyuecn
        6
    xiangyuecn   14 天前
    youla
        7
    youla   14 天前
    用 git-bash

    mkdir con

    可以。

    还有命名 nul 也不行哦。
    youla
        8
    youla   14 天前
    才发现帖子里提到了,一目五十行没注意。
    Tink
        9
    Tink   14 天前
    CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
    Raven316
        10
    Raven316   14 天前
    felixcode
        11
    felixcode   14 天前
    所以 Windows 不适合开发?开发还得用 Mac ?
    azkaban
        12
    azkaban   14 天前
    在 wsl 里试了一下,建啥目录都没问题
    exceloo
        13
    exceloo   14 天前
    难道你们不知道以前 win 系统在运行中输入 /con/con 会导致死机吗?
    暴露年龄了。。。
    whywhywhy
        14
    whywhywhy   14 天前
    @exceloo Windows 98
    syuraking
        15
    syuraking   14 天前
    DOS 时代 con 就是设备的标识符,只能说明,你不懂微软的 DOS……
    xiri
        16
    xiri   14 天前 via Android
    这是 dos 时代遗留下来的,微软为了兼容性一直没有修改
    lovecy
        17
    lovecy   14 天前
    我再说一个事,SVN 上面有两个目录,名字一样但是大小写不同,checkout 到 windows 机器上会因为重名,导致两个目录的内容被奇怪的合并到一起
    hakono
        18
    hakono   14 天前 via Android
    不是,楼主你为啥不在 wsl/wsl2 下开发
    BostonCorbett
        19
    BostonCorbett   14 天前
    @kindjeff 什么意思?
    jim9606
        20
    jim9606   14 天前
    感觉这是文件 API 的路径处理出现歧义导致的,资源管理器不能创建,删不掉,能显示文件存在,但文件属性不能正常显示。
    看了下这个问答( https://stackoverflow.com/questions/17883481/delete-a-file-named-nul-on-windows),用 UNC path 可以解决。
    @jiumingzhu 的文档也只是说不建议用保留字,至少文件系统本身并没有这个限制。
    你要知道,以前的资源管理器是不允许新建句号开头的文件的,例如".nomedia"这样的,纯属自己设限。
    realpg
        21
    realpg   14 天前
    2002 年我就会

    netstat -anop tcp | find ":80" > con
    ysc3839
        22
    ysc3839   14 天前 via Android
    @jim9606 不能新建点开头的文件是个 bug,现在已经被修复了。而不能命名为 CON 则是兼容问题。
    lithiumii
        23
    lithiumii   14 天前 via Android
    win 不能建立,但可以用 wsl 建立
    但也没用,回到 win 里也不能访问,好像还不能删除
    wangxiaoaer
        24
    wangxiaoaer   14 天前
    多谢楼主,以前还真不知道这个。
    guanaco
        25
    guanaco   14 天前
    copy con ,好久没用了
    lxilu
        26
    lxilu   14 天前   ❤️ 1
    @lovecy #17 fsutil file setCaseSensitiveInfo X:\path enable
    ysc3839
        27
    ysc3839   13 天前 via Android
    @lxilu 顺带一提,Windows 有个注册表项控制文件系统是否区分大小写,但是别开!我之前开了之后蓝牙直接用不了了……
    by73
        28
    by73   13 天前
    确实很烦人。。之前在 Windows 下 checkout kernel 就出现了这个问题。。只能说 Windows 兼容性太强了(

    后来改用了虚拟机 = =
    lihongming
        29
    lihongming   13 天前 via iPhone
    宁可装个 Linux 桌面版也不要用 Windows 做开发,坑太多了。

    现在除了 Windows 都是类 Unix 的天下,传说将来 Windows 也要像 Mac 一样在类 Unix 系统的基础上重构。
    locoz
        30
    locoz   13 天前 via Android
    还有冒号也是,Linux 和 Mac 下都可以使用,但 Windows 是不行的。
    lxml
        31
    lxml   13 天前 via Android
    @lovecy 因为 Windows 默认的磁盘格式是大小写不敏感的,非常拉胯
    ysc3839
        32
    ysc3839   13 天前 via Android
    @lxml Windows 用的 NTFS 是大小写敏感的,且不能关闭,Windows 是在别的层次做了大小写处理。
    macOS 的文件系统才是可选是否大小写敏感,并且默认选的是不敏感。
    optional
        33
    optional   13 天前 via Android
    @lxml Mac 中枪,默认大小写不敏感
    baobao1270
        34
    baobao1270   13 天前
    其实从 NTFS/ReFS 的层面上来说,它们只要文件名里没有 "/" or "\0" 其他文件名都可以,毕竟这两个 FS 可以在 LINUX 下面跑。这层限制只是 Explorer 层面以及一部分 Windows API 层面的限制。
    changwei
        35
    changwei   12 天前 via Android
    以前 windows 服務器上面的不死僵尸 webshell 就是利用文件扩展名带这些保留字符实现隐藏和免杀的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2630 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:54 · PVG 21:54 · LAX 06:54 · JFK 09:54
    ♥ Do have faith in what you're doing.