The GNU project has announced the release of coreutils 9.9, a new stable version of the essential collection of basic file, shell, and text manipulation utilities that form the backbone of nearly every Linux and Unix-like system.
Among the most notable fixes, the cp command regains proper performance when handling transparently compressed files, a regression observed with OpenZFS and similar filesystems.
At the same time, the tail utility now correctly outputs the requested number of lines for non-small -n values, while unexpand no longer triggers heap buffer overflows when using the GNU-specific /NUM or +NUM formats with --tabs.
Other fixes address subtle behavioral issues in tools like numfmt, sort, and cksum, ensuring correct operation when working with various data encodings, locales, and compression setups.
On the performance side, the wc -l command now runs about 10% faster on systems with AVX512 instruction support. Moreover, utilities such as fmt, date, nl, and pr now terminate immediately upon write errors, an important improvement when processing large or unbounded data streams.
The sort command also received attention as it now detects and reports write failures to compressor programs, preventing silent errors that could previously lead to incomplete output.
It’s also worth mentioning that numfmt, used for formatting numbers and units, has been significantly refined. It now supports:
- A new
--unit-separator=SEPoption - Parsing of numbers with non-breaking spaces and locale-based grouping
- Multi-byte delimiters
- Proper handling of trailing blanks and write errors
Lastly, on the build side, SELinux-related tools (chcon, runcon) are now only built when appropriate headers are available or when explicitly requested. For a deeper technical dive into all the changes in Coreutils 9.9, see the announcement.
