## windows和linux文件名长度限制
### 0x1. windows
* windows上的文件名长度和文件路径有关
- 具体关系为:从根目录计算,文件路径长度最长为259个bytes。
- 有一个特殊情况,D:\xx.txt,类似这样根目录下面一个文件,最后该文件路径长度最长为258个bytes,其他都是259个bytes
- 这也是为什么msdn定义#define MAX_PATH 260的原因,第260个字符为字符串结尾的\0
- Win7+php5下,php写文件,文件名超过256字符,会报错,写文件不成功。
* 具体操作可以在任意一个目录下,新建文件,再重命名文件,名字直到不能添加位置,最后计算下该文件路径长度。
* windows文件名特殊字符《\/*?"<>|:》
### 0x2. linux
- linux可以用getconf来判断文件名长度限制和文件路径长度限制
- 获取最长文件路径长度:getconf PATH_MAX /root 得到4096
- 获取最长文件名:getconf NAME_MAX /root 得到255
* 结论:
- linux下的文件名长度和路径长度无关,这和windows还是有区别
- linux下的文件名长度最长为255 bytes 即小于等于255 bytes
- linux下的最长文件路径长度为4096字节
* linux文件名特殊字符《\/*?"<>|:》最好不要用