在Windows,Mac OS,Linux等中是否有任何“不安全”的文件名?
例如:
New Video 2012-External Room
GED Practice Sheet
RgRrE-re-_d Da-
我听说甚至用空格,下划线,大写字母和短划线命名文件也可能存在问题,即使Windows不将它们包含在禁止字符列表中也是如此。这是真的?我隐约记得看到不区分大写和小写字符的程序,我知道HTML URL将不安全的ASCII字符编码为%
(例如,空格)。
答案 0 :(得分:1)
这在很大程度上取决于使用环境。某些非禁止字符可能会导致某些程序出现问题,但绝大多数使用标准系统API的应用程序都不会遇到任何问题。
某些程序(尤其是命令行工具)可能对文件名中存在空格敏感。其他人可能在内部仅使用ASCII,因此无法处理包含基本ASCII之外的字符的文件名。 (大多数现代操作系统几乎都会接受文件名中的任何Unicode字符。)
某些工具可能需要转义某些字符(例如批处理脚本中的%
),而其他工具可能不喜欢在文件名中包含引号。
最后,关于大写/小写的注释:大多数Windows文件系统都是保留大小写的,但在其他方面不区分大小写,因此大小写差异通常无关紧要。
但是,请注意,几乎在所有情况下,即使需要一些解决方法来使它们工作,仍然可以使用这些文件。
答案 1 :(得分:1)
类似Unix(包括Linux和Mac OS)和Windows都应该没有下划线问题。空格通常也应该没问题,但是你偶尔会发现无法处理它们的错误代码。
对于Windows,并不是资本问题。这是因为Windows文件系统不区分大小写,因此在某些情况下进行互操作时(例如,使用区分大小写的git repo),最终会出现问题(例如,repo最终会出现具有不同大小写的重复项)。
我不确定-
。避免它的一个原因是-
对于许多命令行程序(例如rm -r
)具有特殊含义。所以你必须使用像.\-r
这样烦人的语法。我通常也会避免像%这样的异国情调。