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

windows 不能命名文件为 con

  •  
  •   SakuraSa · 4 天前 · 3740 次点击

    我最近入职了新公司,公司暂时 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   4 天前   ❤️ 29
    第一次发现这件事的时候我还是小男孩,如今已经是俩个孩子的妈了
    Yumwey
        2
    Yumwey   4 天前   ❤️ 1
    我证明,楼上是我兄弟。
    JJstyle
        3
    JJstyle   4 天前   ❤️ 3
    @kindjeff 你这小男孩是这么当妈的?!
    yangheng4922
        5
    yangheng4922   4 天前
    git bash touch con 可以创建 con 的文件
    xiangyuecn
        6
    xiangyuecn   4 天前
    youla
        7
    youla   4 天前
    用 git-bash

    mkdir con

    可以。

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

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

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

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