在 Windows 上将“~”字符引用为主目录路径是否错误?

在 Windows 上将“~”字符引用为主目录路径是否错误?

与 Unix 系统不同,波浪符号~在 Windows 上不能用作主目录的快捷方式。在所有操作系统中,我始终使用字符作为书面文本中的主路径,我想知道这是否是事实上的错误。

%USERPROFILE%可能更合适,因为它可以用作 Windows 资源管理器中的实际快捷方式。

答案1

波浪号在 Windows 中可能有完全不同的含义,并且我认为使用它来指代用户的主目录是无效的 - 或者至少是模棱两可的。

在不支持长文件路径的文件系统上,将使用波浪符号作为替代角色

任何超出短 MS-DOS(也称为 8.3)样式命名约定的文件名都被视为长文件名。当您创建长文件名时,Windows 可能还会创建该名称的短 8.3 格式,称为 8.3 别名或短名称,并将其也存储在磁盘上。

[…]

在许多文件系统中,文件名的每个部分都会包含一个波浪符号 (~),由于太长而不符合 8.3 命名规则。

您可以阅读更多关于8.3 维基百科上的文件名,这是一个可以追溯到 DOS 时代的遗留文件命名约定。

话虽如此,现代程序确实可以将其用作~用户主页的别名 - 例如 PowerShell,请参阅@Broam 的回答。当然,让用户输入一些内容然后由 shell 解释与 shell 可能输出的内容之间是有区别的。但是,由于您不能假设用户使用 PowerShell,或者了解 Unix 约定,因此我建议不要这样做。

答案2

对于大多数情况来说,你是正确的(当我使用工作电脑时,这真是令人抓狂)。

有一个例外:PowerShell 接受使用该~字符,并且如果您使用制表符补全,它会扩展到您的主目录。

第三方 Bash 安装(例如 Git 附带的副本)~也支持。

相关内容