Gil*_*il' 28
除了为测试操作文件名的应用程序而故意创建的文件名之外,我从未见过带有换行符的文件名。可能会出现包含换行符的文件名,因为:
POSIX 将文件名定义为“由用于命名文件的 1 到 {NAME_MAX} 个字节组成的名称。组成名称的字符可以从除斜杠字符和空字节之外的所有字符值的集合中选择。文件名 dot 和 dot-dot 具有特殊含义。” 不能保证每个文件系统都接受“奇怪的”文件名(唯一保证的字符是ASCII 字母、数字、句点、连字符和下划线,即A-Z
, a-z
, 0-9
and ._-
,连字符禁止在第一位),但现代上的大多数本机文件系统unices 做。
sml*_*sml 25
在写论文时,我经常从各种来源收集 PDF 文件的参考书目。并非所有这些都包含正确的元数据,这意味着我有时会将论文的标题从 PDF 查看器复制粘贴到文件名中。这通常会导致文件名中出现换行符,但我使用过的任何工具都不是问题。
恕我直言,对标准进行编码并没有什么“防御性”......该标准规定文件名中允许换行。如果您的脚本不能处理标准中允许的所有文件名,则您的脚本已损坏。