Публикувана стабилна версия на пакета основни системни утилити GNU Coreutils 9.5, който включва програми като sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls и др.
Ключови нововъведения:
- Оптимизирани са операциите за запис и четене в утилитите cp, mv, install, cat и split. Размерът на минималния четен или записван блок е увеличен от 128KiB на 256KiB, което доведе до повишаване на пропускната способност при четене на кеширани файлове с 10-20%.
- Към утилитите env, kill и timeout е добавена поддръжка за неназовани сигнали.
- Чрез изключване на транслацията на ненужни етикети MCS/MLS е подобрена ефективността на операциите по копиране при работа в системи SELinux.
- Сократено е времето за стартиране на утилитата sort благодарение на прекратяване на динамичното свързване с библиотеката libcrypto, когато не е зададена опцията «-R».
- Значително е ускорена работата на утилитата wc в среди с еднобайтови локали и е малко ускорена в системи с многобайтови локали.
- Към утилита chgrp е добавена поддръжка на опцията «—from=OWNER:GROUP» за прилагане на промените само върху файлове с определен собственик и група.
- В утилитата chmod, подобно на утилитите chown и chmod, са реализирани опции «-h», «-H», «-L», «-P» и «—dereference», които предлагат допълнителни възможности за обработка на символични линкове.
- В утилита cp е добавена опция «—keep-directory-symlink» за запазване и следване на съществуващи символични линкове към директории.
- Към утилитите cp и mv е добавена опция «—update=none-fail», която напомня на опцията «—no-clobber», с изключение на това, че изпълнението завършва с грешка, ако файловете вече съществуват.
- Към утилита env е добавена опция -a (—argv0) за презаписване на нулевия параметър на командния ред (пътя към изпълнимия файл).
- Към утилита mv е добавена опция «—exchange» за размяна на съдържанието на източника и целта (например, при изпълнение на «mv —exchange A B», съдържанието на A и B ще се разменят, т.е. A ще се премести в B, а B в A).
- Към утилита tail е добавена поддръжка за проследяване на изхода от множество процеси чрез повторно указване на множество опции «—pid».
Преди няколко дни беше публикувано ново издание на проекта uutils coreutils 0.0.25, който представлява аналог на пакета GNU Coreutils, пренаписан на езика Rust. В coreutils влизат над сто утилити, включително sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целта на проекта е да създаде кросплатформена алтернативна реализация на Coreutils, която да работи и на платформи като Windows, Redox и Fuchsia. За разлика от GNU Coreutils, реализацията на Rust се разпространява под разрешителната MIT лицензия, вместо копилефт лиценцията GPL.
В новата версия на uutils за еталон е използвано изданието на GNU Coreutils 9.4. Подобрена е съвместимостта с еталонния тестов набор на GNU Coreutils, при преминаването на който успешно са изпълнени 437 теста (в предишната версия 422), 117 (132) теста са завършили неуспешно, а 50 (50) теста са били пропуснати. Осигурена е пълна съвместимост с GNU Coreutils за утилитите 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 и yes.
Разширени са възможностите, подобрена е съвместимостта и добавени са липсващи опции за утилитите 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 и uniq.

Източник: opennet.ru
