This ls
behavior change was from 2016 but is finally making it's way into Ubuntu.
To get back the old behavior use ls -N
.
Optionally you can use an environmental variable:
QUOTING_STYLE=literal ls
Make it an alias, or set export QUOTING_STYLE=literal
in your ~/.bashrc
to achieve the old behavior.
You can read the link above for more details including the history of when, where, why and how this all came to be. There are quite a few comments under the author of ls changes where he justifies the new behavior:
A few points about the change.
- It was introduced in coreutils v8.25, and alignment improved in v8.26
- It only happens when outputting to terminals so doesn't break scripts
- It disambiguates the output for users for files containing whitespace
- It sanitizes output so it is safe to copy and paste
- Output is now always valid to copy and paste back to shell
- Users can get back to the old format by adding
-N
to their ls
alias
ls
to manage files in your scripts you’re doing it wrong. Why you shouldn't parse the output ofls
and Why not parsels
(and what do to instead)? – dessert Dec 31 '18 at 16:32ls
changes to single quote filenames with spaces did so to alleviate some of the issues your links bring up. Thels
author's comments are in my answer below. Thanks :) – WinEunuuchs2Unix Jan 01 '19 at 14:13ls
author is at least addressing some of the issues. Knowing the author is actively involved in Stack Exchange (the link in my answer) one could more easily suggest future improvements. Then comment upvotes from other users would encourage author to implement suggestions. – WinEunuuchs2Unix Jan 01 '19 at 14:28