Die GNU Coreutils stellen auf den meisten Distributionen nach wie vor die zentralen Kommandozeilenwerkzeuge. In der neuen Version arbeiten cat, yes, shuf und wc schneller – teilweise sogar recht deutlich.
Die Entwicklung der GNU Coreutils läuft eigentlich nur noch behutsam weiter. Auch das aktuelle Release macht hier keine Ausnahme und liefert neben Fehlerkorrekturen lediglich einige kleinere Änderungen. Darunter fallen auch ein paar Optimierungen, die gleich vier Tools beschleunigen. Da die betroffenen Werkzeuge häufig verkettet mit Kollegen in Pipes zum Einsatz kommen, dürfte der Geschwindigkeitsvorteil in der Praxis teilweise deutlich spürbar sein.
Das trifft vor allem auf „cat“ und „yes“ zu, die jetzt bis zu 15-mal schneller ihre Arbeit erledigen. Möglich macht dies eine Technik namens Zero-Copy I/O. Dabei versuchen die Tools mit entsprechenden Kernel-Funktionen die Daten möglichst direkt zum Ziel zu schieben und so wiederum Kopieroperationen einzusparen.
In zwei Situationen zählt auch „wc“ schneller: Die vor allem vom Unicode-Standard genutzten Multi-Byte-Zeichen zählt das Tool bis zu 2,6-fach („wc -m“), ganzen Zeilen sogar bis zu 4,5-fach flotter („wc -l“) – letzteres allerdings nur auf ARM-Prozessoren mit NEON-Befehlssatzerweiterung. Die letzte Optimierung betrifft den Aufruf von „shuf -i“, das jetzt keinen Lock mehr auf Stdio setzt („unlocked stdio“) und so mitunter doppelt so schnell eine Zahlenfolge verwürftelt.
Neben den Geschwindigkeitssteigerungen gab es noch ein paar weitere nützliche Verbesserungen. So verdaut „date –date“ endlich ein Datum im Format „dd.mm.yy“. Des Weiteren verwendet „cksum –check“ ein deutlich defensiveres Quoting bei Dateinamen, rahmt also Dateinamen in Anführungsstrichen ein, um Seiteneffekte zu verhindern.
„cut“, „nl“, „expand“ und „unexpand“ verdauen ab sofort auch Mulit-Byte-Zeichen. „cut“ kennt zudem die neuen Parameter „-w“, „-F“ und „-O“, die seine gleichnamigen Kollegen unter anderen Betriebssystemen kennen. So ist „-O“ etwa in der Busybox ein Alias für „–output-delimiter“, während „-w“ beziehungsweise dessen Langform „–whitespace-delimited“ von „cut“ unter macOS angeboten wird. Die zusätzlichen Parameter erleichtern vor allem die Portierung von Shell-Skripten.



