V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
villivateur
V2EX  ›  全球工单系统

Windows 居然不允许将文件名命名为 aux.c ?!?

  •  
  •   villivateur · 272 天前 · 3236 次点击
    这是一个创建于 272 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天在 Windows 上 clone 了一份 linux kernel 代码,checkout 的时候报错:

    error: invalid path 'drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c'

    结果发现是 Windows 不允许将文件名命名为 aux.c ……

    准确地说,是不允许命名为任何以 aux 开头的文件,不管什么后缀名

    24 条回复    2024-02-24 17:47:25 +08:00
    Eiden
        1
    Eiden  
       272 天前
    无法复现
    registerrr
        2
    registerrr  
       272 天前
    无法复现
    si
        4
    si  
       272 天前
    有些文件名是保留,aux 、con 、nul 之类的好像是 DOS 的设备名称
    Goooooos
        5
    Goooooos  
       272 天前
    用了那么多年 windows ,才知道
    angry41
        6
    angry41  
       272 天前
    win11 ,无法复现
    Nooooobycat
        7
    Nooooobycat  
       272 天前
    windows11 23h2 22631.3155 可以创建,没这个限制
    windows10 22h2 19045.4046 无法创建,复现成功
    masterclock
        8
    masterclock  
       272 天前
    CON 、LPTx 、COMx 、NUL 等都不行的
    zqx
        9
    zqx  
       272 天前 via Android
    巧了,我今天把 linux 子系统复制到另一个盘,也是一些内核文件无法复制。
    peanutBark
        10
    peanutBark  
       272 天前
    ChatGpt
    在 Windows 操作系统中,有一些保留的文件名,这些文件名与早期的 MS-DOS 和 Windows 版本的历史有关。这些保留的文件名包括 CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3 等。

    这些名称被保留是因为它们是用于特定设备或系统功能的特殊文件名。例如:

    CON 代表控制台。
    PRN 代表打印机。
    AUX 代表辅助设备,通常是指串行端口。
    NUL 代表空设备。

    由于这些名称被操作系统用于特殊目的,所以不能将它们用作普通文件或文件夹的名称。如果尝试使用这些保留名称创建文件或文件夹,Windows 通常会报错或拒绝操作。这是为了避免与系统功能发生冲突或混淆。
    hronro
        11
    hronro  
       272 天前
    确实逆天
    Tumblr
        12
    Tumblr  
       272 天前
    Windows 11 无法复现:
    Cooky
        13
    Cooky  
       272 天前 via Android   ❤️ 1
    windows 在命名的一些限制,你用 msys2 里的 shell 就可以建这些名字的文件
    zqx
        14
    zqx  
       272 天前 via Android
    @zqx 但是在 windows 上安装 linux 时却可以正常安装,而且可以解压出 aux 目录
    Kroos
        15
    Kroos  
       272 天前

    Win11 可以创建,但是没办法通过 Onedrive 同步。
    villivateur
        16
    villivateur  
    OP
       272 天前
    @Kroos 哈哈,这是不是证明了 Onedrive 服务器是 Windows server
    geelaw
        17
    geelaw  
       272 天前
    是 Win32 禁止使用 AUX 等 DOS 设备名作为文件名,另外这个从 MS-DOS 时代就有了。关于为什么加任意扩展名、在任意目录都不行,参考 https://devblogs.microsoft.com/oldnewthing/20031022-00/?p=42073
    FengMubai
        18
    FengMubai  
       272 天前
    @Cooky git shell 测试可用
    kokutou
        19
    kokutou  
       272 天前
    cmd 可以的
    windows 有保留字 gui 创建的时候是不行的
    caiqichang
        20
    caiqichang  
       272 天前
    win10 可以通过 wsl 创建修改
    PrinceofInj
        21
    PrinceofInj  
       272 天前
    越来我真的老了🙃
    gefranks
        22
    gefranks  
       272 天前
    看到这个文件名的时候我就想起 MSDOS 的保留字了.
    clorischan
        23
    clorischan  
       272 天前
    win11 gui 可以创建
    mmdsun
        24
    mmdsun  
       271 天前 via iPhone
    NUL 也不行。这和 Linux 下不能创建/dev/null 文件一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.