3 Answers
3

Mac OS X by default uses a case-insensitive filesystem. If you want to change that you need to reformat your disk with the case-sensitive option. Be warned, that some programs written by major vendors <cough>Adobe</cough>, <cough>Microsoft</cough> have severe problems with case sensitive filesystems.

While the filesystem is case-insensitive all files will be presented as their natural case. I.e., if you have a file named hello.txt and type shift+HTab (capital H then tab) you will not get any completion candidates (unless you set your shell to do insensitive completion).

Things may be better now with Adobe & MS applications but they used to be completely unusable. E.g., a file written as Info.plist but opened as INFO.PLIST case sensitive will fail. It's been my experience that almost all Mac users (developers included) use case-insensitive so you're not likely to get much sympathy when you run into bugs.
–
bahamatJul 25 '12 at 20:57

I haven't encountered a case insensitive shell environment before. Thanks for the help... I'm going to have to re-think some of my shell-scripts now :-(
–
mgjkJul 25 '12 at 21:36

1

@mgjk: Don't misunderstand. The shell is still case sensitive. The filesystem is not. It is a subtle, but important distinction.
–
bahamatJul 25 '12 at 22:47

cat writes the contents of goodbye.txt to stdout which points to hello.txt.

cat starts reading from the hello.txt and writes what it reads to stdout, which is still pointing at hello.txt. Since cat is reading and writing the same file it will never reach the end of file and will continue adding to hello.txt until the filesystem is full.