Вышел стабильный релиз набора базовых системных утилит GNU Coreutils 9.12 — в него входят sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls и другие.
В утилите env появилась опция «—env0-from=FILE», позволяющая загружать перечень устанавливаемых переменных окружения из файла. Её же можно задействовать и для фильтрации уже заданных переменных — например, командой вида «env -i —env0-from=<( env -0 | sed -z … )". Для сохранения текущего состояния переменных окружения в файл пригодится printenv.
В командах env, printenv, stat, basename, dirname, du, readlink и realpath при выводе на терминал теперь задействуется экранирование спецсимволов — в стиле, который задаётся переменной окружения QUOTING_STYLE (%N, %Qn или %n). Такой шаг нужен, чтобы защититься от манипуляций содержимым и состоянием терминала через подстановку специальных символов. А в df, du, ls, od, pr и sort реализовано экранирование проблемных опций в текстах ошибок. Команда «ls -m» дополнительно экранирует запятые в именах файлов.
Утилиты chcon, chgrp, chmod, chown, du и ls при рекурсивных операциях с опцией «-R» больше не падают с ошибкой, если файлы в обрабатываемых каталогах удаляются параллельно.
В sort оптимизировали потребление памяти и параллельные операции при чтении данных, размер которых заранее неизвестен — скажем, при передаче через неименованные каналы. Определение начала строки в «cut -w» ускорили, и теперь пропускная способность в локалях с многобайтовыми кодировками выросла до четырёх раз. Команда «uniq -c» стала работать до 2,5 раз быстрее на системах с функциями stdio без блокировок.
Появилась сборочная опция «—with-wtmpdb»: если её включить, команды «who /var/log/wtmp» и «users /var/log/wtmp» станут обращаться к базе данных формата wtmpdb вместо самого файла /var/log/wtmp.
