【发布时间】:2010-08-24 19:28:37
【问题描述】:
我们想要验证文件路径,例如foo/bar,用户可以输入。是否可以在 OS X 或 Linux 上创建带有前导或尾随空格的文件,例如foo/ bar /bazz?
【问题讨论】:
我们想要验证文件路径,例如foo/bar,用户可以输入。是否可以在 OS X 或 Linux 上创建带有前导或尾随空格的文件,例如foo/ bar /bazz?
【问题讨论】:
在大多数可以在 linux 上使用的文件系统中,您不能在文件名中使用“/”和 NULL 字符。就是这样:)
【讨论】:
'/' 和'\0',我相当确定它的内核 不允许这样做。 (诚然,大多数或所有允许这样做的文件系统驱动程序都不会让您创建或什至可能与此类文件交互,但文件系统允许它们的实际布局。)
touch ' foo '
在 linux 上没问题。
【讨论】:
使用标准 Mac OS HFS+ 文件系统(大多数用户机器上的默认文件系统)在 OS X 上进行快速实验。 可以创建和挂载更传统的 Unix 文件系统。
ls > " foo "
ls > "foo "
ls > " foo"
ls > foo
24 Aug 23:32 foo
24 Aug 23:32 foo
24 Aug 23:32 foo
24 Aug 23:32 foo
ls > "foo/ "
-bash: foo/ : Not a directory
所以 - 前导和尾随空格 - 是的。这确保了与经典 Mac OS 文件的兼容性。 使用 / - 没有。
现在试试
ls > Foo
我们看到 'foo' 已更新。 HFS 默认不区分大小写(可以启用,但如果需要,最好使用完全替代的 FS)
24 Aug 23:40 foo
如果您的代码要求 Foo 和 foo 同时存在,这显然会导致将某些标准 Unix 代码转换为 OS X 时出现问题。
【讨论】: