Windows NTFS 和 Unix 上文件名的 255 个字符限制是整个路径还是路径的一部分?
即给定 c:\part1\part2 只有 part1 和 part2 必须小于 255 或者是 C:\ + part1 + part2
Unix 的规则是什么?
Windows NTFS 和 Unix 上文件名的 255 个字符限制是整个路径还是路径的一部分?
即给定 c:\part1\part2 只有 part1 和 part2 必须小于 255 或者是 C:\ + part1 + part2
Unix 的规则是什么?
在 Windows 上,第 1 部分和第 2 部分应为 255 或更少,整个 c:\part1\part2 应为 260 或更少。有一种方法可以在 WinNT 内核(Windows 2000、XP 和更高版本)上拥有更长的文件名和路径,但这要求访问此类文件的应用程序明确支持此类文件名,因此在绝大多数情况下,您可以将 255/260 限制视为硬限制。
除了上面的答案之外,您还必须考虑正在使用的文件系统(ext2 等)。Unix 没有标准答案。Linux 通常为每个组件 255 个,完整路径为 4096,或者路径不受限制。其他 Unix 变体使用不同的限制。带有 HFS+ 的 OSX 是 255 文件名和 1024 或无限路径(我找不到明确的答案)。除非您确定您只需要担心 Linux,否则您可能希望保持整体路径较低以确保安全。如果可能,将整个路径限制为 255 并不是一个坏主意。您可能还需要考虑文件系统可以挂载到网络上,而 NFS、SMB 等也有其自身的限制。
Unix 的简短答案是没有简短的答案,也没有标准,操作系统和底层文件系统都施加了限制。
在 Linux 系统上,part1 和 part2 都应为 255 (ie FILE_MAX
) 或更小,整个路径应为 4096 (ie PATH_MAX
) 或更小。PATH_MAX 的使用有缺陷,如此处所述。