Press "Enter" to skip to content

GNU Coreutils 9.12 Gives Linux’s Everyday Commands Some New Tricks

The latest GNU coreutils release adds safer environment handling, new uname output, and behavior changes to some of Linux’s most familiar terminal commands.

Long-time GNU Coreutils maintainer and release manager, Pádraig Brady, today announced on the info-gnu mailing list that GNU Coreutils 9.12 has been released. If you’re new to Linux, coreutils is a collection of command-line utilities that’s found on just about all Linux distributions. This includes ls, cp, mv, rm, mkdir, chmod, chown, cat, as well as many other commands you’re likely to use when you open a terminal.

It’s also what often makes the use of those commands in Linux unique. Even though many of the same commands are also used by BSD, Unix, and other *nixes, GNU Coreutils defines them differently, which means they don’t work the same, or necessarily with the same modifiers, when used in Linux.

In addition to a plethora of bug fixes, some going all the way back to the beginning, there are three major new features:

** If you're finding this article useful, please consider supporting our work through our FOSS Force Independence 2026 fundraiser. **

  • env now supports --env0-from=FILE to read NUL-delimited environment entries from a file. With -i, entries are preserved exactly, allowing full round-tripping of environments containing duplicate or nonstandard entries.
  • stat and tail now know about the failfs and nullfs file system types. stat -f -c%T now reports the file system type, and tail -f uses inotify for these file systems.
  • uname adds the -A option to label all output, one item per line.

There are also three notable changes in behavior to be on the watch for:

  • env and printenv now quote printed environment variables honoring the QUOTING_STYLE environment variable, defaulting to shell-escape style. This avoids printing arbitrary data to the terminal and allows the output to be sourced by a POSIX shell.
  • ls -w, --width no longer includes \n in the width of a line. That is, the width or $COLUMNS is interpreted to be an inclusive maximum.
  • stat now uses shell quoting when required to more robustly escape file names. Previously, it only quoted file names with the %N format. The default quoting honors the QUOTING_STYLE environment variable, as does %N. Also, %Qn is a newly supported format combination to quote file names, leaving the existing %n format for when quoting is not desired.

The best thing to do, of course, is to wait for this to show up in your distro’s update manager. However, those of you who’re chomping at the bit can find a complete list of changes as well as download information at https://savannah.gnu.org/news/?id=10932.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *