Foi lançada a versão estável do conjunto de utilitários básicos do sistema GNU Coreutils 9.5, que inclui programas como sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, etc.
Principais inovações:
- Foi otimizado o desempenho de gravação e leitura nas utilitários cp, mv, install, cat e split. O tamanho do bloco mínimo legível ou gravável foi aumentado de 128KiB para 256KiB, resultando em um aumento de 10-20% na taxa de transferência ao ler arquivos em cache.
- As utilitários env, kill e timeout agora suportam sinais não nomeados.
- A eficiência das operações de cópia no sistema SELinux foi aumentada pela exclusão da tradução de etiquetas MCS/MLS desnecessárias.
- O tempo de inicialização da utilitário sort foi reduzido ao interromper a vinculação dinâmica à biblioteca libcrypto em situações em que a opção '-R' não é especificada.
- A utilitário wc teve seu desempenho significativamente acelerado em ambientes com locais de um byte e um pouco acelerado em sistemas com locais multibyte.
- A utilitário chgrp agora possui suporte para a opção '--from=OWNER:GROUP' para aplicar alterações apenas a arquivos com o proprietário e grupo especificados.
- Na utilitário chmod, assim como nas utilitários chown e chmod, foram implementadas as opções '-h', '-H', '-L', '-P' e '--dereference', oferecendo capacidades adicionais para manipulação de links simbólicos.
- A utilitário cp agora inclui a opção '--keep-directory-symlink' para preservar e seguir links simbólicos existentes para diretórios.
- Nas utilitários cp e mv, foi adicionada a opção '--update=none-fail', que se assemelha à opção '--no-clobber', exceto que a execução resulta em erro se os arquivos já existirem.
- A utilitário env agora possui a opção -a (--argv0) para redefinir o parâmetro nulo da linha de comando (caminho para o arquivo executável).
- A utilitário mv recebeu a opção '--exchange' para trocar o conteúdo de origem e destino (por exemplo, ao executar 'mv --exchange A B', o conteúdo de A e B será trocado, ou seja, A irá para B e B irá para A).
- A utilitário tail agora suporta o monitoramento da saída de vários processos por meio da especificação repetida de várias opções '--pid'.
Há alguns dias, foi lançado o projeto uutils coreutils 0.0.25, que desenvolve uma alternativa ao pacote GNU Coreutils reescrita em Rust. O coreutils inclui mais de cem utilitários, incluindo sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln e ls. O objetivo do projeto é criar uma implementação alternativa cross-platform do Coreutils, capaz de funcionar em plataformas como Windows, Redox e Fuchsia. Ao contrário do GNU Coreutils, a implementação em Rust é distribuída sob a licença permissiva MIT, em vez da licença copyleft GPL.
Na nova versão do uutils, a versão de referência utilizada é a GNU Coreutils 9.4. A compatibilidade com o conjunto de testes de referência do GNU Coreutils foi melhorada, sendo que 437 testes foram bem-sucedidos (na versão anterior, 422), 117 (132) testes falharam e 50 (50) testes foram ignorados. A compatibilidade total com o GNU Coreutils foi garantida para os utilitários 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 e yes.
As funcionalidades foram ampliadas, a compatibilidade foi melhorada e opções ausentes foram adicionadas para os utilitários 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 e uniq.

Fonte: opennet.ru
