Mac OSX HFS is case-insensitive Filesystem by default.

I am pretty new Mac OS, but my background is from Linux (Unix), so I didn’t notice that the default filesystem in Mac is case-insensitive.

While getting a code of linux kernel through svn, I encounter this error:

A     xxxxxx/linux/netfilter_ipv4/ipt_REJECT.h
svn:  In directory  'xxxxxx/linux/netfilter_ipv4'
svn:  Can't copy  'xxxxxx/linux/netfilter_ipv4/.svn/tmp/text-base/ipt_tcpmss.h.svn-base'  to  'xxxxxx/linux/netfilter_ipv4/.svn/tmp/ipt_tcpmss.h.tmp.tmp':  No such file or directory

This problem is caused by the case-insensitive filesystem being used in MacOS. There are distinguished files, ipt_TCPMSS.h and ipt_tcpmss.h for netfilter_ipv4.

To solve the problem, there are two ways.

1. Reformat HFS entirely with case-sensitive attribute.

This is very painful, and would cause not running properly for a certain software like Photoshop. (What a mistake: case-sensitive HFS on my mac book) However, this will make faster than using dmg.

2. Create a disk image (dmg) for the specific project with case-sensitive.

Using dmg would be a little bit slower, but this makes easy. Using Disk Utility, you can create a disk volume with case-sensitive attribute.

4 Replies to “Mac OSX HFS is case-insensitive Filesystem by default.”

  1. Hello,

    technically correct would be that by default (when you get a Mac “out of the box”) the file-system is case-*preserving*: that is, it will happily store and report “Foo.txt” vs “FOO.TXT”, but does not *distinguish* between the two (“it’s the same file”). However Capitalisation is preserved. Just like on NTFS (not sure whether there is an option, like with HFS, to make it also case-*sensitive*).

    The most well-known non-preserving filesystem is the plain old FAT as known from MS-DOS. When you name a file like “Foo.txt”, it will always be stored as FOO.TXT.

    Most filesystems used on Unix/Linux are case-*sensitive*, which is a superset from case-preserving which is a superset of case-non-sensitive: so “FILE.TXT” is a different file than “file.txt” which is is a different file than “File.txt” etc.

    Just splitting hairs here 😉

    Cheers

    1. Cool. Thank you for your comment on the case-insensitive, case-preserving, and case-sensitive file system. It would be more accurate explanation for handling alphabet in a filesystem.

      Thanks,
      Daniel

Leave a Reply

Your email address will not be published. Required fields are marked *