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

303 天前
 villivateur

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

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

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

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

3289 次点击
所在节点    全球工单系统
24 条回复
Eiden
303 天前
无法复现
registerrr
303 天前
无法复现
villivateur
303 天前
si
303 天前
有些文件名是保留,aux 、con 、nul 之类的好像是 DOS 的设备名称
Goooooos
303 天前
用了那么多年 windows ,才知道
angry41
303 天前
win11 ,无法复现
Nooooobycat
303 天前
windows11 23h2 22631.3155 可以创建,没这个限制
windows10 22h2 19045.4046 无法创建,复现成功
masterclock
303 天前
CON 、LPTx 、COMx 、NUL 等都不行的
zqx
303 天前
巧了,我今天把 linux 子系统复制到另一个盘,也是一些内核文件无法复制。
peanutBark
303 天前
ChatGpt
在 Windows 操作系统中,有一些保留的文件名,这些文件名与早期的 MS-DOS 和 Windows 版本的历史有关。这些保留的文件名包括 CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3 等。

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

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

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

Win11 可以创建,但是没办法通过 Onedrive 同步。
villivateur
303 天前
@Kroos 哈哈,这是不是证明了 Onedrive 服务器是 Windows server
geelaw
303 天前
是 Win32 禁止使用 AUX 等 DOS 设备名作为文件名,另外这个从 MS-DOS 时代就有了。关于为什么加任意扩展名、在任意目录都不行,参考 https://devblogs.microsoft.com/oldnewthing/20031022-00/?p=42073
FengMubai
303 天前
@Cooky git shell 测试可用
kokutou
303 天前
cmd 可以的
windows 有保留字 gui 创建的时候是不行的
caiqichang
303 天前
win10 可以通过 wsl 创建修改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1017859

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX