On Sun, 27 Apr 2025 10:21:55 +0000
Farley Flud <ff@linux.rocks> wrote:
We all should hate case insensitive file systems.
Why?
On Sun, 27 Apr 2025 10:21:55 +0000
Farley Flud <ff@linux.rocks> wrote:
We all should hate case insensitive file systems.
Why?
On 4/28/25 10:56, John Ames wrote:
On Sun, 27 Apr 2025 10:21:55 +0000 Farley Flud <ff@linux.rocks> wrote:
We all should hate case insensitive file systems.
Why?
I imagine that his argument will be something along the lines of "it's fascism for my system not to be able to differentiate between Green the surname and green the colour." I actually agree that if I name a file green.odt, it should be obvious that it is the text I wrote about how
much I love the colour and not the text I wrote about the Green family. However, most people are not that bright and would prefer case
insensitivity because they would prefer to name a document
greencolour.odt or greenfamily.odt.
Just so, it seems to me. Of course it's many years too late for *nix to course-correct on this, but it was a stupid design decision in 1970 and
it remains stupid now. Well, such is the nature of things in this vale
of sin and tears...
On Mon, 28 Apr 2025 13:27:32 -0400, CrudeSausage wrote:
On 4/28/25 10:56, John Ames wrote:
On Sun, 27 Apr 2025 10:21:55 +0000 Farley Flud <ff@linux.rocks> wrote:
We all should hate case insensitive file systems.
Why?
I imagine that his argument will be something along the lines of "it's
fascism for my system not to be able to differentiate between Green the
surname and green the colour." I actually agree that if I name a file
green.odt, it should be obvious that it is the text I wrote about how
much I love the colour and not the text I wrote about the Green family.
However, most people are not that bright and would prefer case
insensitivity because they would prefer to name a document
greencolour.odt or greenfamily.odt.
Otoh is you're dealing with a database you very seldom care if the field
is 'Green Eggs', 'green eggs', GREEN EGGS', or 'Green eggs'. However with
a case sensitive database like DB2 you have to use UCASE or LOWER,
relatively expensive operations at run time, or make sure all data is
entered in lower or upper case.
Ironically, DB2 is case insensitive for table and column names.
On Mon, 28 Apr 2025 18:56:18 +0000
Farley Flud <ff@linux.rocks> wrote:
What about the files:
cat_scan_links.html
CAT_scan_links.html
What *about* them? Your first example made more of a case that the
problem can be complex;* this one is eminently straightforward.
* (Although it still does not seem prohibitively so.)
On 2025-04-28, John Ames <commodorejohn@gmail.com> wrote:
On Sun, 27 Apr 2025 10:21:55 +0000
Farley Flud <ff@linux.rocks> wrote:
We all should hate case insensitive file systems.
Why?
Because they're so insensitive. :)
Personally I like the fact that File.txt, file.txt and file.TXT are all different files. It's useful for backing up files.
The biggest issue I envision anyone having with case sensitivity is not remembering what they saved a certain file as. However, if you know that
the document deals with green eggs, searching for it despite not
remembering the document filename should be trivial.
On Mon, 28 Apr 2025 12:31:06 -0700, John Ames wrote:
On Mon, 28 Apr 2025 18:56:18 +0000
Farley Flud <ff@linux.rocks> wrote:
What about the files:
cat_scan_links.html
CAT_scan_links.html
What *about* them? Your first example made more of a case that the
problem can be complex;* this one is eminently straightforward.
* (Although it still does not seem prohibitively so.)
I'll give you a hint.
"CAT" is an acronym for "Computed Axial Tomography."
"cat" is the useless animal that gives comfort to sterile women.
On 2025-04-28, John Ames <commodorejohn@gmail.com> wrote:
On Sun, 27 Apr 2025 10:21:55 +0000 Farley Flud <ff@linux.rocks> wrote:
We all should hate case insensitive file systems.
Why?
Because they're so insensitive. :)
Personally I like the fact that File.txt, file.txt and file.TXT are all different files. It's useful for backing up files.
I mean, just by looking at it, we know that "The Trials and Tribulations
of Peppa Pig" is probably a title of something whereas "the trials and tribulations of Peppa Pig" probably isn't; why wouldn't our filesystem
be as smart as we are?
Of course it's many years too late for *nix to course-correct on
this ...
In comp.os.linux.misc Farley Flud <ff@linux.rocks> wrote:
On Mon, 28 Apr 2025 12:31:06 -0700, John Ames wrote:
On Mon, 28 Apr 2025 18:56:18 +0000 Farley Flud <ff@linux.rocks>
wrote:
What about the files:
cat_scan_links.html
CAT_scan_links.html
What *about* them? Your first example made more of a case that the
problem can be complex;* this one is eminently straightforward.
* (Although it still does not seem prohibitively so.)
I'll give you a hint.
"CAT" is an acronym for "Computed Axial Tomography."
"cat" is the useless animal that gives comfort to sterile women.
Hey, you forgot men. /s :P
On Mon, 28 Apr 2025 11:12:42 -0700, John Ames wrote:
Just so, it seems to me. Of course it's many years too late for *nix to
course-correct on this, but it was a stupid design decision in 1970 and
it remains stupid now. Well, such is the nature of things in this vale
of sin and tears...
Case insensitivity was only idiotic at the beginning, but now, in the
age of Unicode, it is supremely idiotic.
Consider the German "sharp s," which I cannot enter as UTF-8 here.
But the lower case sharp s maps into TWO DIFFERENT upper case chars:
<can't enter> and "SS," e.g. STRASSE or <can't enter>.
https://www.npr.org/sections/shots-health-news/2025/04/16/g-s1-60488/ct- scan-cancer-risk-ionizing-radiation
afaik cats aren't linked to cancer although the one scratching at the door trying to get in might get her furry little ass kicked off the deck if she don't knock it off.
Cats are not useless if you have a pasture full of field mice in the backyard.
On Mon, 28 Apr 2025 11:12:42 -0700, John Ames wrote:
Just so, it seems to me. Of course it's many years too late for *nix to
course-correct on this, but it was a stupid design decision in 1970 and
it remains stupid now. Well, such is the nature of things in this vale
of sin and tears...
Case insensitivity was only idiotic at the beginning, but now, in the
age of Unicode, it is supremely idiotic.
Consider the German "sharp s," which I cannot enter as UTF-8 here.
But the lower case sharp s maps into TWO DIFFERENT upper case chars:
<can't enter> and "SS," e.g. STRASSE or <can't enter>.
There are special rules on case folding for thousands of Unicode chars
and the "sharp s" example is one of the simplest.
What about the files:
cat_scan_links.html
CAT_scan_links.html
To paraphrase Kipling:
Unix is Unix and Microslop is Microslop and never the twain should
meet.
On Mon, 28 Apr 2025 18:56:18 +0000
Farley Flud <ff@linux.rocks> wrote:
On Mon, 28 Apr 2025 11:12:42 -0700, John Ames wrote:
Just so, it seems to me. Of course it's many years too late for
*nix to course-correct on this, but it was a stupid design decision
in 1970 and it remains stupid now. Well, such is the nature of
things in this vale of sin and tears...
Case insensitivity was only idiotic at the beginning, but now, in the
age of Unicode, it is supremely idiotic.
Consider the German "sharp s," which I cannot enter as UTF-8 here.
But the lower case sharp s maps into TWO DIFFERENT upper case chars:
<can't enter> and "SS," e.g. STRASSE or <can't enter>.
That merely illustrates the point that whoever decided to model it like
this in Unicode was truly a numbskull. For two reasons:
1) just because the result _looks_ like SS doesn't mean it has to be
two characters. A Unicode character can look like anything, even a full
word (and beyond). The only reason to use two characters would be hyphenation, which in this case is explicitly forbidden. Someone didn't understand the difference between syntax and semantics.
2) this transformation is not trivially inversible. No, you can't just translate every SS back to ß, you'd pretty much need an AI to invert
this. Whenever you're introducing a transformation that's trivial in
one direction and extremely hard in the other, and you're not working
in cryptography, you're doing something extremely, horribly wrong.
There are special rules on case folding for thousands of Unicode chars
and the "sharp s" example is one of the simplest.
I seriously doubt that, especially since many (most?) languages don't
even know what "case" is supposed to be in the first place (such as
Japanese, I'm pretty sure it's the same in Chinese and most other asian languages, which incidentally take up the most code points). And even
if it were true, that'd mean we'd need a couple of thousand additional
code points for these special cases, out of several million -- who
cares, the gender-neutral-smileys-crowd?
On Mon, 28 Apr 2025 11:12:42 -0700, John Ames wrote:
Just so, it seems to me. Of course it's many years too late for
*nix to course-correct on this, but it was a stupid design decision
in 1970 and it remains stupid now. Well, such is the nature of
things in this vale of sin and tears...
Case insensitivity was only idiotic at the beginning, but now, in the
age of Unicode, it is supremely idiotic.
Consider the German "sharp s," which I cannot enter as UTF-8 here.
But the lower case sharp s maps into TWO DIFFERENT upper case chars:
<can't enter> and "SS," e.g. STRASSE or <can't enter>.
There are special rules on case folding for thousands of Unicode chars
and the "sharp s" example is one of the simplest.
On Mon, 28 Apr 2025 11:12:42 -0700, John Ames wrote:
Of course it's many years too late for *nix to course-correct on
this ...
It’s not too late. On Linux, you have the choice. Torvalds’ complaint was precisely about bugs in the correct handling of that choice, which he
blamed on having the choice in the first place.
We all should hate case insensitive file systems. I certainly do.
On Apr 27, 2025 at 6:21:55 AM EDT, "Farley Flud" <ff@linux.rocks> wrote:
We all should hate case insensitive file systems. I certainly do.
Why? Just because Torvalds does? That's like me claiming Bill Gates loves them so I do too.
On Mon, 28 Apr 2025 15:46:56 -0400, CrudeSausage wrote:
The biggest issue I envision anyone having with case sensitivity is not
remembering what they saved a certain file as. However, if you know that
the document deals with green eggs, searching for it despite not
remembering the document filename should be trivial.
I was talking about databases. In DB2
'SELECT author FROM books WHERE title LIKE 'green eggs%'
is only going to match 'green eggs' exactly. If you're not sure how the record was stored you would need LOWER(title).
The equivalent directory search would be something like
find . -name "*.txt" | xargs grep -i "green eggs"
The difference is the directory search is probably going to be a one-shot. The SQL statement may be executed thousands of times and LOWER() is
costly.
I'm curious how SQL Server or Access handles case insensitivity in the internals. However it's done it's faster than explicit conversions at runtime.
On 2025-04-29, rbowman <bowman@montana.com> wrote:
On Mon, 28 Apr 2025 15:46:56 -0400, CrudeSausage wrote:
The biggest issue I envision anyone having with case sensitivity is
not remembering what they saved a certain file as. However, if you
know that the document deals with green eggs, searching for it despite
not remembering the document filename should be trivial.
I was talking about databases. In DB2
'SELECT author FROM books WHERE title LIKE 'green eggs%'
is only going to match 'green eggs' exactly. If you're not sure how the
record was stored you would need LOWER(title).
The equivalent directory search would be something like
find . -name "*.txt" | xargs grep -i "green eggs"
The difference is the directory search is probably going to be a
one-shot.
The SQL statement may be executed thousands of times and LOWER() is
costly.
I'm curious how SQL Server or Access handles case insensitivity in the
internals. However it's done it's faster than explicit conversions at
runtime.
Why not just use the -iname option for find? Its the same as -name, but
not case sensitive.
On Tue, 29 Apr 2025 20:11:19 +0200, Andreas Dehmel wrote:
On Mon, 28 Apr 2025 18:56:18 +0000
Farley Flud <ff@linux.rocks> wrote:
On Mon, 28 Apr 2025 11:12:42 -0700, John Ames wrote:
Just so, it seems to me. Of course it's many years too late for
*nix to course-correct on this, but it was a stupid design
decision in 1970 and it remains stupid now. Well, such is the
nature of things in this vale of sin and tears...
Case insensitivity was only idiotic at the beginning, but now, in
the age of Unicode, it is supremely idiotic.
Consider the German "sharp s," which I cannot enter as UTF-8 here.
But the lower case sharp s maps into TWO DIFFERENT upper case
chars: <can't enter> and "SS," e.g. STRASSE or <can't enter>.
That merely illustrates the point that whoever decided to model it
like this in Unicode was truly a numbskull. For two reasons:
1) just because the result _looks_ like SS doesn't mean it has to be
two characters. A Unicode character can look like anything, even a
full word (and beyond). The only reason to use two characters would
be hyphenation, which in this case is explicitly forbidden. Someone
didn't understand the difference between syntax and semantics.
2) this transformation is not trivially inversible. No, you can't
just translate every SS back to ß, you'd pretty much need an AI to
invert this. Whenever you're introducing a transformation that's
trivial in one direction and extremely hard in the other, and
you're not working in cryptography, you're doing something
extremely, horribly wrong.
There are special rules on case folding for thousands of Unicode
chars and the "sharp s" example is one of the simplest.
I seriously doubt that, especially since many (most?) languages
don't even know what "case" is supposed to be in the first place
(such as Japanese, I'm pretty sure it's the same in Chinese and
most other asian languages, which incidentally take up the most
code points). And even if it were true, that'd mean we'd need a
couple of thousand additional code points for these special cases,
out of several million -- who cares, the
gender-neutral-smileys-crowd?
Thanks for your input.
I am not a native German speaker and I can only rely on web sites
to inform me of these issues.
But I don't quite get the thesis of your post. Are you for or
against case insensitive filesystems?
On Tue, 29 Apr 2025 19:04:49 +0000
The point was mostly that it annoys me when people make really bad
design decisions like the non-inversible ß -> SS transformation
(which keeps getting repeated whenever case-issues come up) and then
complain that for some inexplicable reason there are nasty repercussions
down the line. This stuff _could_ be really simple; it's almost as if
there's a lesson in there somewhere.
As far as filesystems go, I personally don't have any strong feelings
about this either way, mostly because when I got into computers you
were lucky to have an ASCII equivalent. But I can tell from long
experience as a developer of an application for engineering types that
even those guys usually can't be bothered with case-sensitive
filenames, never mind the average Joe. Nerds might see this differently,
but the vast majority of computer users are not nerds, and in my
experience things like case-sensitive filenames are a constant source
of irritation and confusion for everybody else.
I remember trying to put a letter in uppercase in the name of an
existing file. I had to rename the file differently to be able rename it
back with the uppercase letter. That was very poorly handled by Windows. Don't know how it is now.
On 02 May 2025 20:14:05 GMT, Stéphane CARPENTIER wrote:
I remember trying to put a letter in uppercase in the name of an
existing file. I had to rename the file differently to be able rename it
back with the uppercase letter. That was very poorly handled by Windows.
Don't know how it is now.
ldo@theon:caseinsens-try> touch try.dat
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
Lawrence D'Oliveiro wrote this post while blinking in Morse code:
On 02 May 2025 20:14:05 GMT, Stéphane CARPENTIER wrote:
I remember trying to put a letter in uppercase in the name of an
existing file. I had to rename the file differently to be able rename it >>> back with the uppercase letter. That was very poorly handled by Windows. >>> Don't know how it is now.
ldo@theon:caseinsens-try> touch try.dat
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
It works on my Linux box (Debian Sid).
Heh heh:
Lawrence D'Oliveiro wrote this post while blinking in Morse code:
On 02 May 2025 20:14:05 GMT, Stéphane CARPENTIER wrote:
I remember trying to put a letter in uppercase in the name of an
existing file. I had to rename the file differently to be able rename it >>> back with the uppercase letter. That was very poorly handled by Windows. >>> Don't know how it is now.
ldo@theon:caseinsens-try> touch try.dat
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
It works on my Linux box (Debian Sid).
On 03/05/2025 13:09, Chris Ahlstrom wrote:
And mine (Mint 22)
Lawrence D'Oliveiro wrote this post while blinking in Morse code:
On 02 May 2025 20:14:05 GMT, Stéphane CARPENTIER wrote:
I remember trying to put a letter in uppercase in the name of an
existing file. I had to rename the file differently to be able rename
it back with the uppercase letter. That was very poorly handled by
Windows.
Don't know how it is now.
ldo@theon:caseinsens-try> touch try.dat
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
It works on my Linux box (Debian Sid).
Heh heh:
On 03/05/2025 13:09, Chris Ahlstrom wrote:
Lawrence D'Oliveiro wrote this post while blinking in Morse code:
On 02 May 2025 20:14:05 GMT, Stéphane CARPENTIER wrote:
I remember trying to put a letter in uppercase in the name of an
existing file. I had to rename the file differently to be able rename it >>>> back with the uppercase letter. That was very poorly handled by Windows. >>>> Don't know how it is now.
ldo@theon:caseinsens-try> touch try.dat
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
It works on my Linux box (Debian Sid).And mine (Mint 22)
Heh heh:
On 03/05/2025 13:09, Chris Ahlstrom wrote:
Lawrence D'Oliveiro wrote this post while blinking in Morse code:And mine (Mint 22)
ldo@theon:caseinsens-try> touch try.datIt works on my Linux box (Debian Sid).
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
Heh heh:
The Natural Philosopher <tnp@invalid.invalid> writes:
On 03/05/2025 13:09, Chris Ahlstrom wrote:
Lawrence D'Oliveiro wrote this post while blinking in Morse code:And mine (Mint 22)
ldo@theon:caseinsens-try> touch try.datIt works on my Linux box (Debian Sid).
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
Heh heh:
I would guess that you’re doing the test on a case-dependent filesystem? With vfat and 9p (to NTFS, in WSL) the behavior is as Lawrence
describes.
On 10/05/2025 09:38, Richard Kettlewell wrote:
The Natural Philosopher <tnp@invalid.invalid> writes:Lawrence said it was a feature of Linux, not of the file system in use
On 03/05/2025 13:09, Chris Ahlstrom wrote:I would guess that you’re doing the test on a case-dependent
Lawrence D'Oliveiro wrote this post while blinking in Morse code:And mine (Mint 22)
ldo@theon:caseinsens-try> touch try.datIt works on my Linux box (Debian Sid).
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
Heh heh:
filesystem? With vfat and 9p (to NTFS, in WSL) the behavior is as
Lawrence describes.
The Natural Philosopher <tnp@invalid.invalid> writes:
On 10/05/2025 09:38, Richard Kettlewell wrote:
The Natural Philosopher <tnp@invalid.invalid> writes:Lawrence said it was a feature of Linux, not of the file system in use
On 03/05/2025 13:09, Chris Ahlstrom wrote:I would guess that you’re doing the test on a case-dependent
Lawrence D'Oliveiro wrote this post while blinking in Morse code:And mine (Mint 22)
ldo@theon:caseinsens-try> touch try.datIt works on my Linux box (Debian Sid).
ldo@theon:caseinsens-try> ls -l
total 0
-rw-r--r-- 1 ldo users 0 May 3 11:57 try.dat
ldo@theon:caseinsens-try> mv try.dat TRY.DAT
mv: 'try.dat' and 'TRY.DAT' are the same file
I guess Linux isn’t any better ...
Heh heh:
filesystem? With vfat and 9p (to NTFS, in WSL) the behavior is as
Lawrence describes.
The context was case-insensitive filesystems,
but the logic being
applied is indeed independent of filesystem; it just leads to different results in different types of filesystem.
(Strictly, it’s a feature of GNU coreutils,
but apart from that I think his point stands.)
First, the Linux rename() syscall has no trouble with renames to the ‘same’ name (with or without a case change and in both case-insensitive and case-sensitive filesystems). So in that sense Linux copes with the situation just fine.
In fact so does Windows, both via explorer and ren; I don’t know what behavior the poster before Lawrence was experiencing but there doesn’t
seem to be a problem today.
However, we’re not using (just) rename() here. coreutils’s mv does quite a lot of work for a superficially simple rename but the relevant part
here is that it explicitly checks whether source and destination are the
same file and refuses to rename in that situation. The situation also
arises if you use hard links:
$ touch a
$ ln a b
$ mv a b
mv: 'a' and 'b' are the same file
So that’s the sense in which it’s a feature of Linux (strictly: of coreutils). The behavior in case-insensitive filesystems follows, since
in a case-insensitive filesystem, try.dat and TRY.DAT are two names for
the same file.
IMO that’s a bug in mv: you should be able to change letter case in case-insensitive filesystems using just mv.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 54:54:15 |
Calls: | 10,397 |
Calls today: | 5 |
Files: | 14,067 |
Messages: | 6,417,417 |
Posted today: | 1 |