如何检查我的硬盘是否区分大小写?


48

如果HD格式区分大小写或不区分大小写,如何获取信息?

我要确保运行Mountain Lion的Mac具有区分大小写的文件系统。


3
正如bmike所提到的,使用区分大小写的文件系统很可能是个坏主意-许多软件(最著名的是Adobe)在区分大小写的文件系统上无法运行。对于jo随机用户,文件系统的区分大小写的状态不是“额外的功能”,对于知道他们在做什么的高级用户来说,这是一个好消息。对于joe随机用户,区分大小写的文件系统更可能是一种责任。
user1256923

Answers:


58

您可以使用终端读取文件系统个性:

diskutil info /

查找以下名称的字段:

   File System Personality:  Journaled HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended (Journaled)

如果文件系统区分大小写,则在第一个粘贴行中将看到区分大小写的日记HFS,在第三行中看到Mac OS扩展(区分大小写,日记)

Disk Utility还将在信息窗口中显示它可以看到的任何文件系统。


8
我不想阻止您使用区分大小写的文件系统,但是请注意,大多数软件测试都无法很好地解决这种极端情况,并且由于以下原因,大多数经验丰富的管理员会建议不要在启动卷上启用此功能:过去支持该配置的不良经验。当我真正需要区分大小写以满足跨平台需求或非常特定的代码库时,通常会制作一个外部驱动器或一个dmg。您可能有充分的理由需要此文件,但我想确保其他人知道文件系统过于敏感可能会出现问题。
bmike

1
是的,我需要它来测试Web开发。大多数托管用例敏感。所以我想匹配它。但是就像你说的那样:如果区分大小写使某些软件无法正常工作,似乎区分大小写就没用了:)
GusDeCooL 2012年

2
实际上,您的原因是我进行测试分区和/或磁盘映像并选择区分大小写的文件系统的唯一原因。我将系统保持默认状态,但是根据备用文件系统的路径在Web根目录上测试开发,部署和脚本。我还要补充一点,自从雪豹时代以来,我就没有在区分大小写的FS上运行OS X,所以由于过去的经验,我可能已经过时了,一无所获。听起来您好像已经做好了全副武装的准备,可以尝试两种情况-深入研究或对测试进行划分。
bmike

2
如果您需要测试Web开发的环境,则也可以考虑运行虚拟机,因为Mac和生产服务器上的环境之间可能存在其他怪异之处。看看VirtualBox + Vagrant。
格里

2
注意,在OS X 10.8.x(Mountain Lion)中,我不得不这样做,diskutil info因为它list没有显示预期的信息。
尼克

28

这样的事情应该起作用:

测试中

touch abc1
touch abC1
ls ab*

解释结果

  • 1个文件-不区分大小写
  • 2个文件-区分大小写

我在Mac OS 10.12.6中尝试了相同的方法。尽管我有区分大小写的文件系统,但是只创建了1个文件。这怎么可能?
Sanandrea

13

运行diskutil info <device>,您的答案将显示。

File System Personality 将反映一种已知的性格。

如果您看到:File System Personality: Journaled HFS+这意味着它不区分大小写。要回答您的问题,您想看File System Personality: Case-sensitive Journaled HFS+


7

El Capitan的更新,请参阅“磁盘工具”的“信息”窗口中随附的屏幕截图。

在此处输入图片说明


5

更新:正如一些人所指出的,我在下面提出的答案是有缺陷的。@John但是有类似的答案,没有缺陷。

您可以在外壳中进行测试:

  • 打开终端
  • 输入以下命令:

    touch abc1
    touch ABC2
    ls a*
    

如果ls命令同时显示文件abc1和ABC2,则您的驱动器不区分大小写(即大小写无关紧要)。如果仅显示abc1,则区分大小写(即大小写很重要)。

在关闭终端之前,输入rm abc1和rm ABC2进行测试后进行清理。


一个经验性的解决方案-非常好。
bmike

4
abc1和ABC2如何碰撞?不应该是abc1和ABC1吗?
getWeberForStackExchange

4
abc1和ABC2并不冲突。我本来可以选择AllanArmour作为文件名。该ls a*命令将告诉您文件系统区分大小写。如果是的话,由于我的最后一个示例中只有小写字母a in,因此只会列出我的盔甲ls a*。但是,如果操作系统不区分大小写,则该ls a*命令将同时列出Allan和盔甲。
让·弗朗索瓦·比彻姆

2
@Jean-FrançoisBeauchamp回答您的问题:我已经编辑过,因为您的回答是&错误。我正在使用不区分大小写的文件系统Journaled HFS +,但是它是区分大小写的。您的方法创建两个文件abc1ABC2,但ls a*仅显示一个文件。我只是在尝试提供帮助,但是,我不想违背您自己的意愿进行编辑,而您似乎对此很敏感-因此,我将保持原样,并留下反对意见。
wim 2015年

2
@wim好的,谢谢您的解释!您说得对,我的回答有缺陷。我仍然更喜欢一个解释,而不是不理解为什么不对我的帖子进行编辑。Patrix对nocaseglob也是正确的。
让·弗朗索瓦·比彻姆

2

对我有用的是:

echo -n This file system is case->tmp; echo -n in>>TMP; echo sensitive>>tmp; cat tmp

1

最快的方法是使用Terminal.app:

diskutil info /Volumes/NAME-OF-VOLUME

或(如果您只想查看相关行)

diskutil info /Volumes/NAME-OF-VOLUME | grep 'User Visible'

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.