4

Windows NTFS 和 Unix 上文件名的 255 个字符限制是整个路径还是路径的一部分?

即给定 c:\part1\part2 只有 part1 和 part2 必须小于 255 或者是 C:\ + part1 + part2

Unix 的规则是什么?

4

3 回答 3

3

在 Windows 上,第 1 部分和第 2 部分应为 255 或更少,整个 c:\part1\part2 应为 260 或更少。有一种方法可以在 WinNT 内核(Windows 2000、XP 和更高版本)上拥有更长的文件名和路径,但这要求访问此类文件的应用程序明确支持此类文件名,因此在绝大多数情况下,您可以将 255/260 限制视为硬限制。

于 2013-01-24T12:11:04.330 回答
2

除了上面的答案之外,您还必须考虑正在使用的文件系统(ext2 等)。Unix 没有标准答案。Linux 通常为每个组件 255 个,完整路径为 4096,或者路径不受限制。其他 Unix 变体使用不同的限制。带有 HFS+ 的 OSX 是 255 文件名和 1024 或无限路径(我找不到明确的答案)。除非您确定您只需要担心 Linux,否则您可能希望保持整体路径较低以确保安全。如果可能,将整个路径限制为 255 并不是一个坏主意。您可能还需要考虑文件系统可以挂载到网络上,而 NFS、SMB 等也有其自身的限制。

Unix 的简短答案是没有简短的答案,也没有标准,操作系统和底层文件系统都施加了限制。

于 2013-01-24T19:13:19.570 回答
1

在 Linux 系统上,part1 和 part2 都应为 255 (ie FILE_MAX) 或更小,整个路径应为 4096 (ie PATH_MAX) 或更小。PATH_MAX 的使用有缺陷,如此所述。

于 2013-01-24T17:54:40.233 回答