A stable version of the GNU Coreutils 9.5 basic system utility set has been released, which includes programs such as sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, etc.
Key innovations:
- The cp, mv, install, cat, and split utilities have been optimized for read and write operations. The minimum readable or writable block size has been increased from 128KiB to 256KiB, resulting in a 10-20% increase in throughput when reading cached files.
- Support for unnamed signals has been added to the env, kill, and timeout utilities.
- By eliminating the translation of unnecessary MCS/MLS labels, the efficiency of copy operations when using SELinux has been improved.
- The startup time of the sort utility has been reduced by stopping dynamic linking with the libcrypto library when the ‘-R’ option is not specified.
- The wc utility has been significantly accelerated in environments with single-byte locales and slightly improved on systems with multi-byte locales.
- Support for the ‘—from=OWNER:GROUP’ option has been added to the chgrp utility to apply changes only to files with the specified owner and group.
- In the chmod utility, similar to the chown and chmod utilities, options ‘-h’, ‘-H’, ‘-L’, ‘-P’, and ‘—dereference’ have been implemented to provide additional symbolic link handling capabilities.
- The cp utility has introduced the ‘—keep-directory-symlink’ option to preserve and follow existing symbolic links to directories.
- The cp and mv utilities have added the ‘—update=none-fail’ option, which resembles the ‘—no-clobber’ option, except that the execution will terminate with an error if files already exist.
- An -a (—argv0) option has been added to the env utility to override the null command-line parameter (the path to the executable).
- An ‘—exchange’ option has been added to the mv utility for swapping the contents of the source and destination (for example, when executing ‘mv —exchange A B’, the contents of A and B will switch places, i.e., A will move to B, and B will move to A).
- The tail utility has added support for tracking output from multiple processes by re-specifying multiple ‘—pid’ options.
A few days ago, the release of the uutils coreutils 0.0.25 project was published, which develops an analog of the GNU Coreutils package, rewritten in Rust. The coreutils package includes over a hundred utilities, including sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, and ls. The project's goal is to create a cross-platform alternative implementation of Coreutils that can also work on Windows, Redox, and Fuchsia platforms. Unlike GNU Coreutils, the Rust implementation is distributed under the permissive MIT license instead of the copyleft GPL license.
In the new version of uutils, the reference release is GNU Coreutils 9.4. Compatibility with the reference test suite of GNU Coreutils has been improved, successfully passing 437 tests (compared to 422 in the previous version), 117 (132) tests failed, and 50 (50) tests were skipped. Full compatibility with GNU Coreutils has been ensured for the utilities base64, basename, cat, chgrp, chmod, chown, dirname, expand, fold, groups, join, ln, mktemp, nice, nl, nproc, paste, pathchk, printenv, realpath, shuf, sleep, split, sync, unexpand, uniq, wc, and yes.
Enhanced features, improved compatibility, and added missing options for the utilities base32, base64, basenc, basename, cat, chcon, chmod, cksum, cp, csplit, cut, dd, df, du, echo, env, expand, factor, fmt, hashsum, install, ln, ls, more, numfmt, odd, printf, pr, seq, shuf, sort, split, stat, tsort, tty, truncate, uname, and uniq.

Source: opennet.ru
