最常见两点:
-
Linux文件名大小写敏感,Windows文件名大小写不敏感;
# 一个文件夹下面,Linux系统中可以出现这样的两个文件,windows不可以 A.txt a.txt
-
路径分隔符,Linux使用斜杠
/
,windows使用反斜杠\
,但在许多情况下也支持斜杠。
来自GPT
在Linux系统和Windows系统上,文件的命名规范有一些重要的区别。以下是一些关键点:
1. 大小写敏感性
- Linux: 文件名是大小写敏感的。这意味着
file.txt
和File.txt
是两个不同的文件。 - Windows: 文件名是大小写不敏感的,但保留大小写。这意味着
file.txt
和File.txt
被视为同一个文件,但系统会记住你如何命名它。
2. 允许的字符
- Linux: 允许几乎所有字符,包括空格、特殊字符(如
*
,?
,|
,\
,/
,:
,"
等)。但是/
是目录分隔符,不能用在文件名中。 - Windows: 不允许使用以下字符:
\
,/
,:
,*
,?
,"
,<
,>
,|
。这些字符被保留用于系统用途。文件名中也不能包含制表符或换行符。
3. 文件名长度
- Linux: 通常允许文件名长度最多为255个字符。
- Windows: 传统上文件名长度限制为255个字符,但包括路径在内的总长度不能超过260个字符(虽然在现代Windows版本中,可以通过配置注册表和使用特定API来支持更长的路径)。
4. 文件扩展名
- Linux: 文件扩展名没有特殊意义,通常用于指示文件类型,但系统本身不强制使用。
- Windows: 文件扩展名用于确定文件的类型和关联程序。例如,
.exe
文件被识别为可执行文件,.txt
文件被识别为文本文件。
5. 保留名称
- Linux: 很少有保留名称,除了一些特殊的设备文件(如
/dev/null
)。 - Windows: 有许多保留名称,这些名称不能用作文件或文件夹名。这些包括:
CON
,PRN
,AUX
,NUL
,COM1
,COM2
, …,COM9
,LPT1
,LPT2
, …,LPT9
。
6. 路径分隔符
- Linux: 使用
/
作为路径分隔符。 - Windows: 使用
\
作为路径分隔符,但在许多情况下也支持/
。
总之,在编写跨平台代码时,最好遵循更严格的文件命名规范,避免使用任何可能在某个平台上无效的字符或名称,并注意文件名和路径的长度限制。