我读过Linux 中的文件名限制但这具体是关于 Samba 的。
我遇到了一个问题,我的(Debian Squeeze)Samba 服务器的 Windows 和 Linux 客户端都无法访问埋藏在深层文件路径中的某些 PDF。
包含目录的文件路径为 250 个字符,这使我怀疑存在 255 个字符的限制。 (由于多字节 UTF8 字符,可能更少。)
这将大大少于 Linux 文件名/文件路径的限制。
有人知道是否有办法解决这个限制吗?
答案1
Windows 中的字符数限制为 255(或 260?),如 SO 问题中所述https://stackoverflow.com/questions/1065993/has-windows-7-fixed-the-255-character-file-path-limit。
Windows 中显然有一种方法可以解决这个问题,并且可能有一种方法可以使用 SAMBA 来模拟这个问题,但这可能会破坏某些应用程序。
为了便于管理,除非您有令人信服的理由不这样做,否则我会看看您是否可以尝试在文件层次结构中创建更深的共享,以便路径不会太长,使用 subst 或等效于符号链接的方法来缩短文件路径,或者重新组织共享结构,使其不会嵌入太深。这将使其与各种应用程序最兼容;以后不太可能遇到程序错误。
有一个可以应用于 SAMBA 的源代码补丁/更改,如果您在 Google 上搜索,重新编译即可修复。但同样,这可能会在以后成为管理问题,因为更新可能会破坏您的自定义修复。
另一种方法是将共享挂载为 NFS 共享。我认为 NFS 不会受到相同的 ~250 个字符限制,但如果您这样做,它就不是“Windows”解决方案了。
就我个人而言,我会重组共享以减少字符数;这样可以减少头痛和随机问题,以便记住为什么某些东西可能会出现故障或停止工作。