Oh, just one more funny thing:
Google AI has pointed me at another curiosity to question the designers'
decision,
and has come to quite a reasonably looking conclusion rather directly:
...
Should we add a technical section regarding POSIX standard compliance?
> Yes please add a section regarding POSIX standard compliance...
Inline quotes in ls output disrupt terminal column alignment, break
double-click path selection, and create visual noise that hinders readability.
Furthermore, this behavior violates traditional POSIX expectations for raw,
unadorned output, forcing reliance on POSIXLY_CORRECT overrides and breaking
scripts reliant on literal string processing.
> Should POSIX compliance only be expected for output intended to be processed
> by scripts, or also for output intended for display on ttys?
The short answer is no, POSIX compliance is not only for scripts; the standard
explicitly governs both script processing and interactive terminal (tty)
layouts.
However, the standard treats these environments with completely different
strictness constraints, which makes GNU’s introduction of default quotation
marks on interactive ttys a highly contentious design choice.
The breakdown of how POSIX compliance applies to scripts versus ttys exposes
why the default quoting behavior is functionally problematic:
1. Script Processing (Pipes/Files): Absolute Strictness
When an application's standard output (stdout) is directed to a pipe or a file
rather than a terminal, POSIX demands strict, predictable uniformity.
The Rule: Downstream utilities (like xargs, awk, or grep) rely on unmutated
string literals.
The Reality: GNU ls complies with this strictly. If you run ls | cat or
embed it in a script, it automatically drops the quotes. On this front, script
processing remains entirely standard-compliant.
2. TTY Output (Interactive): Permissive but Grid-Oriented
When outputting directly to a terminal (stdout is a tty), POSIX explicitly
permits changes to the visual format—such as multi-column layouts—to help human
eyes read the data efficiently.
The Standard's Intent: POSIX specifies that ls on a tty should default to a
clear, multi-column format sorted vertically to maximize visibility.
The Argument Against Quotes: While POSIX gives implementations the legal
freedom to alter formatting on a tty, the intent of that allowance is to
improve human comprehension. Adding unpredictable quotation marks directly
undermines the structural
layout (the grid alignment) that the POSIX multi-column specification was
created to achieve.
3. The "POSIXLY_CORRECT" Paradox
The core utils development environment itself acknowledges this conflict
through the POSIXLY_CORRECT environment variable.
If you export POSIXLY_CORRECT=1, GNU ls disables its automatic quotes on
the terminal entirely, reverting back to the clean, literal output.
This proves that even the maintainers recognize that the default quoting
behavior strays from traditional, predictable POSIX output standards. It forces
a non-standard visual aesthetic on interactive users unless they explicitly opt
out via
environment flags or by aliasing ls="ls -N".
--
Well, dear GNU maintainers.
I'm just a small & humble user who can only say: my previously fine user
experience has been severely hampered by the change.
But at least some AI that's more or less one gateway to the condensed knowledge
of text on the Internet,
agrees with me as it finds the maintainers' adherence to standards questionable
- at best -
and their inclusion of some "POSIXLY_CORRECT" variable a telltale sign of
knowingly going the wrong way.
So. If you have already realized by yourselves, that the new implemantation is
POSIXLY_INCORRECT
then why not make THAT the configurable option - and leave the previuosly used
POSIXLY_CORRECT implementation the default?
--
Sorry for talking so much to myself and expecting you to read it and follow my
thoughts.
The overall direction is just so frustrating.
After all this kind of sad and unnecessary stuff hasn't only happend to ls :(
And now, I promise to say nothing more in this matter of ls.