2025-11-20 05:51:27
有些字符不能出现在文件名里,比如Windows系统不允许有斜杠、反斜杠、冒号、星号、问号、大于号、小于号、竖线、波浪号、分号、&、|、?、,还有空格需要加引号。Linux系统虽然允许空格,但特殊符号比如、$、%也会被限制。比如/和是路径分隔符,不能当文件名;和?是通配符,系统会冲突;空格可能被当成分隔符,比如"我的文件.txt"要加双引号。
为什么这些符号不行呢?首先斜杠和反斜杠是Windows和Linux的路径分隔符,如果用在文件名里,系统会当成目录层级处理。比如C:桌面文件.txt,如果文件名带,就会变成C:桌面文件.txt,导致路径错误。微软的官方文档明确指出,文件名中不能包含、/、:、、?、<、>、|这些符号,这些字符会被系统保留用于特定功能。比如星号在命令行里会匹配多个文件,问号?会匹配单个文件,如果用在文件名里,用户手动输入时就会报错。空格需要加引号是因为系统默认把空格当分隔符,比如"我的电脑文档.txt"如果不加引号,系统会当成"我的电脑"和"文档.txt"两个文件。Linux虽然允许空格,但像、$、%这些符号会被用在脚本或配置文件里,如果作为文件名,系统会当成特殊指令处理,比如号在Shell脚本里表示注释,所以不能出现在文件名里。数据来源:微软《文件系统命名规则》和Linux《文件系统规范》均明确标注了这些限制。
本题链接: