为什么 Linux vfat 驱动程序不允许使用某些字符?

为什么 Linux vfat 驱动程序不允许使用某些字符?

Linux vfat 驱动程序似乎不允许 vfat 长文件名中包含某些字符:?<>\:*|".我知道 Windows 不支持这些字符,但是维基百科似乎表明文件系统本身支持任何非空 16 位 unicode 字符。如果是这样的话,为什么 Linux 驱动程序要限制可用字符呢?仅仅是为了兼容性,还是实际上存在维基百科页面上未提及的技术限制?如果是前者,是否有办法克服这个限制?

NTFS-3g 支持将这些字符写入 NTFS,当我使用外部硬盘驱动器在 Linux 系统之间移动文件时,这非常有用。如果我能对 VFAT 做同样的事情那就太好了。

答案1

如果我没有记错的话,Windows 支持的任何文件系统(FAT/VFAT/FAT32/NTFS)都应该满足有效文件和目录名称的一些标准命名约定。上述字符列表是保留字符,即使是 Unicode 字符也无法使用。

我想说的是 fat/vfat 文件系统的 Linux 实现试图符合这种“Windows 标准”。也许,本文可以带来更多有关它的细节。

相关内容