Se ha publicado una versión estable del conjunto de utilidades del sistema básico GNU Coreutils 9.5, que incluye programas como sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, etc.
Novedades clave:
- Se han optimizado las operaciones de lectura y escritura en las utilidades cp, mv, install, cat y split. El tamaño del bloque mínimo que se puede leer o escribir se ha incrementado de 128KiB a 256KiB, lo que ha resultado en un aumento del 10-20% en el rendimiento de lectura de archivos en caché.
- Las utilidades env, kill y timeout ahora cuentan con soporte para señales no nombradas.
- Al eliminar la traducción de etiquetas innecesarias MCS/MLS, se ha mejorado la eficiencia de las operaciones de copia al utilizar el sistema SELinux.
- Se ha reducido el tiempo de inicio de la utilidad sort al detener el enlace dinámico con la biblioteca libcrypto en situaciones donde no se especifica la opción «-R».
- Se ha acelerado significativamente el funcionamiento de la utilidad wc en entornos con locales de un solo byte y un poco en sistemas con locales multibyte.
- La utilidad chgrp ha añadido soporte para la opción «—from=OWNER:GROUP» para aplicar cambios solo a archivos con el propietario y grupo especificados.
- En la utilidad chmod, al igual que en las utilidades chown y chmod, se han implementado las opciones «-h», «-H», «-L», «-P» y «—dereference», que ofrecen capacidades adicionales para manejar enlaces simbólicos.
- La utilidad cp ha añadido la opción «—keep-directory-symlink» para conservar y seguir enlaces simbólicos existentes a directorios.
- En las utilidades cp y mv se ha añadido la opción «—update=none-fail», que es similar a la opción «—no-clobber», a excepción de que la ejecución termina con un error si los archivos ya existen.
- La utilidad env ha añadido la opción -a (—argv0) para sobrescribir el parámetro cero de la línea de comandos (ruta al archivo ejecutable).
- La utilidad mv ha añadido la opción «—exchange» para intercambiar el contenido de origen y destino (por ejemplo, al ejecutar «mv —exchange A B», el contenido de A y B se intercambiará, es decir, A se moverá a B y B a A).
- La utilidad tail ha añadido soporte para rastrear la salida de múltiples procesos mediante la reespecificación de varias opciones «—pid».
Hace unos días también se publicó la versión del proyecto uutils coreutils 0.0.25, que desarrolla un análogo del paquete GNU Coreutils, reescrito en Rust. El conjunto de coreutils incluye más de cien utilidades, que abarcan sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln y ls. El objetivo del proyecto es crear una implementación alternativa multiplataforma de Coreutils, que pueda funcionar también en plataformas como Windows, Redox y Fuchsia. A diferencia de GNU Coreutils, la implementación en Rust se distribuye bajo la licencia permisiva MIT, en lugar de la licencia copyleft GPL.
En la nueva versión de uutils, la referencia utilizada es la versión GNU Coreutils 9.4. Se ha mejorado la compatibilidad con el conjunto de pruebas de referencia de GNU Coreutils, pasando satisfactoriamente 437 pruebas (en la versión anterior 422), 117 (132) pruebas fallaron y 50 (50) pruebas fueron omitidas. Se ha garantizado la plena compatibilidad con GNU Coreutils para las utilidades 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 y yes.
Se han ampliado las capacidades, mejorado la compatibilidad y añadido opciones faltantes para las utilidades 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 y uniq.

Fuente: opennet.ru
