创建具有保留名称的文件
creating files with reserved names
Windows 不允许您给文件保留名称,例如 con
。但是,WSL 没有任何此类限制。
创建名为 con
的文件会产生错误:'The specified device name is invalid.' 创建文件
touch con
在 WSL 中不会产生任何错误,但是从 Windows Explorer 中删除它会产生错误:'Invalid file handle.' 然而,
rm con
在 WSL 中删除它没有问题。
这是怎么回事?为什么 WSL 使用保留名称创建文件没有错误?
Windows 阻止这些文件名完全使用它们。(例如,如果您访问旧 windows 版本中的目录 C:\CON\CON
,您会出现蓝屏)
因此,您不能 access/create/delete 使用 cmd 或 explorer(在哪个驱动器中无关紧要)。
但是,文件系统不会阻止它。正因为如此 linux(也许是因为某些东西在 Windows 内核中运行?) shell 模拟器,如 git bash 或 wsl(我没有测试 cygwin)可以create/access/delete 这些文件甚至在可引导 Windows 分区中。
Windows 不允许您给文件保留名称,例如 con
。但是,WSL 没有任何此类限制。
创建名为 con
的文件会产生错误:'The specified device name is invalid.' 创建文件
touch con
在 WSL 中不会产生任何错误,但是从 Windows Explorer 中删除它会产生错误:'Invalid file handle.' 然而,
rm con
在 WSL 中删除它没有问题。
这是怎么回事?为什么 WSL 使用保留名称创建文件没有错误?
Windows 阻止这些文件名完全使用它们。(例如,如果您访问旧 windows 版本中的目录 C:\CON\CON
,您会出现蓝屏)
因此,您不能 access/create/delete 使用 cmd 或 explorer(在哪个驱动器中无关紧要)。
但是,文件系统不会阻止它。正因为如此 linux(也许是因为某些东西在 Windows 内核中运行?) shell 模拟器,如 git bash 或 wsl(我没有测试 cygwin)可以create/access/delete 这些文件甚至在可引导 Windows 分区中。