Opublikowana stabilna wersja podstawowego zestawu narzędzi systemowych GNU Coreutils 9.5, w skład którego wchodzą takie programy jak sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls itp.
Kluczowe nowości:
- W narzędziach cp, mv, install, cat i split zoptymalizowano operacje zapisu i odczytu. Rozmiar minimalnego czytanego lub zapisanego bloku zwiększono z 128KiB do 256KiB, co przyczyniło się do wzrostu przepustowości przy odczycie plików przechowywanych w pamięci podręcznej o 10-20%.
- Do narzędzi env, kill i timeout dodano obsługę nieznanych sygnałów.
- Dzięki wykluczeniu translacji zbędnych znaczników MCS/MLS zwiększona została wydajność operacji kopiowania przy użyciu systemu SELinux.
- Skrócono czas uruchamiania narzędzia sort poprzez zaprzestanie dynamicznego wiązania z biblioteką libcrypto w sytuacjach, gdy nie podano opcji „-R”.
- Znacznie przyspieszono działanie narzędzia wc w środowiskach z jednonabytowymi ustawieniami lokalnymi oraz nieco przyspieszono na systemach z wielobajtowymi ustawieniami lokalnymi.
- Do narzędzia chgrp dodano obsługę opcji „—from=OWNER:GROUP”, aby zmiany dotyczyły tylko plików z określonym właścicielem i grupą.
- W narzędziu chmod, podobnie jak w narzędziach chown i chmod, zaimplementowano opcje „-h”, „-H”, „-L”, „-P” oraz „—dereference”, które zapewniają dodatkowe możliwości obsługi łączy symbolicznych.
- Do narzędzia cp dodano opcję „—keep-directory-symlink” w celu zachowania oraz śledzenia istniejących łączy symbolicznych do katalogów.
- Do narzędzi cp i mv dodano opcję „—update=none-fail”, która przypomina opcję „—no-clobber”, z wyjątkiem sytuacji, gdy wykonanie kończy się błędem, jeśli pliki już istnieją.
- Do narzędzia env dodano opcję -a (—argv0) w celu nadpisania zera parametru wiersza poleceń (ścieżka do pliku wykonywalnego).
- Do narzędzia mv dodano opcję „—exchange” do zamiany zawartości źródła i celu (na przykład podczas wykonywania „mv —exchange A B”, zawartość A i B zostanie zamieniona miejscami, tzn. A zostanie przeniesione do B, a B do A).
- Do narzędzia tail dodano obsługę śledzenia wyjścia z wielu procesów poprzez wielokrotne wskazywanie różnych opcji „—pid”.
Kilka dni temu opublikowano również wydanie projektu uutils coreutils 0.0.25, rozwijającego odpowiednik pakietu GNU Coreutils, przepisany w języku Rust. W skład coreutils wchodzi ponad sto narzędzi, w tym sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Celem projektu jest stworzenie wieloplatformowej alternatywnej implementacji Coreutils, która będzie działać także na systemach Windows, Redox i Fuchsia. W przeciwieństwie do GNU Coreutils, wersja w Rust jest udostępniana na licencji MIT, zamiast licencji copyleft GPL.
W nowej wersji uutils jako wzorzec wykorzystano wydanie GNU Coreutils 9.4. Poprawiono zgodność z wzorcowym zestawem testowym GNU Coreutils, podczas którego pomyślnie przeprowadzono 437 testów (w poprzedniej wersji 422), 117 (132) testów zakończyło się niepowodzeniem, a 50 (50) testów zostało pominiętych. Zapewniono pełną zgodność z GNU Coreutils dla narzędzi 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 i yes.
Rozszerzono możliwości, poprawiono zgodność i dodano brakujące opcje dla narzędzi 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 i uniq.

Źródło: opennet.ru
