猿问

Windows和Linux目录名中禁止哪些字符?

我知道/在Linux中是非法的,下面的内容在Windows中是非法的(我认为)* . " / \ [ ] : ; | = ,

我还少了什么?

不过,我需要一个全面的指南,并考虑到双字节字符.连接到外部资源对我来说很好。

我需要首先使用可能包含禁止字符的名称在文件系统上创建一个目录,因此我计划用下划线替换这些字符。然后,我需要将这个目录及其内容写入一个zip文件(使用Java),因此,如果有任何关于zip目录名称的其他建议,我们将不胜感激。

Windows和Linux目录名中禁止哪些字符?

慕仙森
浏览 2501回答 3
3回答

慕村225694

让我们保持简单,首先回答问题。被禁可打印ASCII字符是:Linux/Unix:/&nbsp;(forward&nbsp;slash)窗户:<&nbsp;(less&nbsp;than) >&nbsp;(greater&nbsp;than) :&nbsp;(colon&nbsp;-&nbsp;sometimes&nbsp;works,&nbsp;but&nbsp;is&nbsp;actually&nbsp;NTFS&nbsp;Alternate&nbsp;Data&nbsp;Streams) "&nbsp;(double&nbsp;quote) /&nbsp;(forward&nbsp;slash) \&nbsp;(backslash) |&nbsp;(vertical&nbsp;bar&nbsp;or&nbsp;pipe) ?&nbsp;(question&nbsp;mark) *&nbsp;(asterisk)不可打印字符如果您的数据来自允许不可打印字符的源,那么还需要检查更多。注:虽然在Linux/Unix文件系统中创建文件具有文件名中的控制字符是合法的,对用户来说,处理这些文件可能是一场噩梦。.Linux/Unix:0&nbsp;(NULL&nbsp;byte)窗户:0-31&nbsp;(ASCII&nbsp;control&nbsp;characters)保留文件名保留下列文件名:窗户:CON,&nbsp;PRN,&nbsp;AUX,&nbsp;NUL&nbsp; COM1,&nbsp;COM2,&nbsp;COM3,&nbsp;COM4,&nbsp;COM5,&nbsp;COM6,&nbsp;COM7,&nbsp;COM8,&nbsp;COM9 LPT1,&nbsp;LPT2,&nbsp;LPT3,&nbsp;LPT4,&nbsp;LPT5,&nbsp;LPT6,&nbsp;LPT7,&nbsp;LPT8,&nbsp;LPT9(它们本身具有任意的文件扩展名,例如,LPT1.txt).其他规则窗户:文件名不能以空格或点结尾。

慕姐4208626

在linux和其他与unix相关的系统中,只有两个字符不能出现在文件或目录的名称中,它们是nul。'\0'和斜杠'/'..当然,斜杠可以出现在路径名称中,从而分离目录组件。谣言1StevenBourne(“shell”名声)是否有一个包含254个文件的目录,每一个字母(字符代码)都包含一个文件名(不包括字符代码)。/,&nbsp;'\0';名称.当然是当前目录)。它被用来测试Bourne外壳,并经常对不小心的程序(如备份程序)造成破坏。其他人已经讨论了Windows规则。请注意,MacOSX有一个不区分大小写的文件系统。1是克尼汉和派克编程实践世卫组织在第6章,测试,第6.5节压力测试中说了同样多的话:当SteveBourne编写unix shell(后来被称为Bourne shell)时,他创建了一个由254个文件组成的目录,文件名只有一个字符,每个字节值只有一个。'\0'和斜杠,这两个字符不能出现在Unix文件名中。他使用该目录进行各种模式匹配和标记化测试。(测试目录当然是由程序创建的。)多年以来,该目录是文件树遍历程序的祸害;它对它们进行了破坏。请注意,目录必须包含条目。.和..因此,它可以说是253个文件(和2个目录),或者255个名称条目,而不是254个文件。这不会影响轶事的有效性,也不会影响它所描述的仔细测试的效果。
随时随地看视频慕课网APP
我要回答