jav*_*top 48 linux windows filesystems command-line-interface
哪些字符是允许的,哪些字符必须在不同操作系统的命令行上转义?
Ign*_*ams 29
*nix 中文件名中唯一不允许的字符是NUL和/。在Windows中,唯一NUL,:和\是真正不允许的,但许多应用程序限制进一步,也防止?,*,+,和%。
在任何时候都不需要对文件名中的任何字符进行转义,除非需要,以免被 shell 解释。
Den*_*son 28
您可能会发现这篇文章内容丰富:修复 Unix/Linux/POSIX 文件名。
本文比较了 OS X 和 Windows XP:X 与 XP:文件名中的禁止字符(PDF,参见第 64-66 页)。
我不知道哪些字符必须非转义,但在 Linux 中,转义可能具有特殊含义的字符可能不是一个好主意,例如“n”(换行符)、“t”(制表符)等,但这在文件操作中通常不是问题。也许您的意思是“逃脱”而不是“未逃脱”。最常见的是 shell 将解释的那些,例如空格、“>”、“<”等。请参阅我链接的一些文章以讨论这些内容。
Gre*_*kew 15
如果您在 Windows 上使用资源管理器使用以下字符之一创建文件,它会抱怨不允许使用这些字符:
\ / : * ? " < > |
Run Code Online (Sandbox Code Playgroud)
一个很好的参考在这里:
命名文件、路径和命名空间
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
微软进一步指出:
"...在基于 Windows 的桌面平台上,无效的路径字符可能包括 ASCII/Unicode 字符 1 到 31,以及引号 (")、小于 (<)、大于 (>)、管道 (|)、退格(\b)、空值 (\0) 和制表符 (\t)。”
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
在 Linux 和其他 POSIX 兼容系统上,“/”被保留,因为它是目录分隔符,“\0”(空字符)指定字符串的结尾。其他一切都是允许的。
| 归档时间: |
|
| 查看次数: |
98947 次 |
| 最近记录: |