在 OS X Mavericks (10.9) 中 cp 命令区分大小写吗?

在 OS X Mavericks (10.9) 中 cp 命令区分大小写吗?

这是 OS X 的一个错误还是我的配置有错误?

$ touch aaa
$ ls -l
total 0
-rw-r--r--  1 jchen  1366545133  0 Feb 16 16:08 aaa
$ cp aaa AAA
cp: AAA and aaa are identical (not copied).
$ ln -s aaa AAA
ln: AAA: File exists
$ env | grep SHELL
SHELL=/bin/bash

cp在 OS X 中,和似乎ln不区分大小写。直到我尝试创建一个大写文件夹到小写名称的符号链接时,我才注意到这一点。

在 Linux 上我从未见过这样的问题。

答案1

问题在于 OS X 运行的 HFS+ 文件系统默认不区分大小写。

在下面磁盘工具您可以擦除并重新分区卷以使用区分大小写的 HFS+ 版本 - 它可以作为格式选择:

更改启动卷的大小写敏感度更加困难,通常需要格式化驱动器并从备份中恢复。

答案2

默认情况下,OS X 文件系统不区分大小写。

安装 Mac OS 时,您可以选择使用区分大小写的文件系统。但这会导致某些软件出现问题(例如 Adob​​e Creative Suite)。正如 Joe Block 在下面的评论中提到的,您最好在非启动卷或磁盘映像上创建区分大小写的文件系统。

您可以使用“磁盘工具”创建区分大小写的文件系统的磁盘映像,按照Apple 提供的指南。您还可以从命令行创建磁盘映像(例如,使用这个答案在 Ask Different 上),但一定要指定正确的文件系统。

要创建具有区分大小写的文件系统的 2GB 磁盘映像,您可以运行以下命令:

hdiutil create -size 2g -fs 'Case-sensitive Journaled HFS+' \
  -type SPARSEBUNDLE ~/path/to/your/image

相关内容