Re: rename is idiotic (was Re: VFAT rename)

R. Kelley Cook (KCook@IBM.net)
Mon, 17 May 1999 17:52:07 -0400 (EDT)


On 17 May 1999 21:02:09 +0200, Alexander Viro wrote:

> Let me try to explain what I mean. VFAT has an extremely ugly
>design bug, going back to VMS filesystem misdesign. Case-preserving but
>not case-sensitive. It's fundamentally wrong thing. In effect, it makes a
>capitalization not a part of name but a file attribute.

Spoken as a true C programmer. However you are wrong. Case-preserving, but
insensitive, is the CORRECT way for file systems. Capitalization should not
matter for interpretation of a file name just as it doesn't matter for
interpreting words in any human language. Capitalization should be for
prettiness only.

The problem is with the *nixes themselves and trying to fool them into
realizing that the foreign file-systems they are dealing with is
case-insensitive. Don't call others well thought out designs foolhardy and
then say we can't fix it because they were obviously idiots.

Notice that virtually every non-Unix based file system that is listed as
Linux compatible are case-preserving but case-insensitive. HFS, HPFS, NTFS,
Amiga, Netware, and VFAT to name a few off of the top of my head.

> We can consider the capitalization as part of the name. That's
>what mounting with 'strict' gives you. No problems at all. Thing becomes
>case-sensitive.

That is an bonehead way of dealing with the problem. Linux itself wouldn't
see a problem attempting to overwrite a new "Makefile" over the top of an
already existing "makefile"

> We can consider the thing as case-insensitive and look at the
>capitalization as an attribute out of our control (i.e. rename() has a
>side effect of changing that attribute). And deal with inconveniencies.
> We can consider the thing as case-insensitive and look at the
>capitalization as an attribute out of our control (i.e. rename() has a
>side effect of changing that attribute). And deal with inconveniencies.
> We can consider all capitalizations as links. And eat flaming
>death trying to deal with directories. It's fundamentally broken. Really.

If it is so fundamentally broken, then why has no-one using all of those
others OSes ever run into a problem with case-preserving file names. I have
been using and programming with OS/2 for 10+ years. Trust me it has never
led to remotely questionable situation with it. I've never heard of the Mac
Community screaming about them either. It truly is not even an issue.

And blaming a flaw in the rename command on POSIX compliance is equally
wiggly. MS NT can rename a file only wrt case and has no problems doing so.

OTOH, case sensitivity has always been a PITA when using *nixes, IMO. It's
really too bad that it is about 20 years too late to fix that flaw.

opEn yOur mInd tO THis, IT cAn't be neaRly as BIg a pROBLEM as you mAKE it
ouT to bE :)

-- Kelley Cook

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/