file - In Windows, why are some characters illegal? -
as of know, windows bans following characters in file names:
* . " / \ [ ] : ; | = ,
linux, , other unix based systems, ban \0 (the null character) , / (the path separator) reasons seem obvious.
why windows have many banned characters?
i've looked, , every answer find variation of "is valid" or "what valid", nothing discussing design decisions caused windows (dos?) team make them illegal.
to take them in order:
*prohibited because win32 wildcard character. note unlike linux, wildcards processed api, not shell..not prohibited (obviously!) although have special semantics when appears @ end of file name, i.e., removed. backwards compatibility fat file systems and/or applications designed them.the backward slash path separator, , forward slash treated path separator (sometimes) compatibility unix.
[,]not prohibited.;not prohibited.|- i'm not sure one. possibly because of special meaning on command line, although there other characters special meanings not prohibited in file names.=,,not prohibited.
additional prohibited characters not on list:
?win32 wildcard character.<,>kernel wildcard characters.spaces trimmed end of file names in same way periods are.