GNUプロジェクトは4月15日(現地時間)、「GNU Coreutils 9.1」をリリースしました(Phoronix)。GNU Coreutilsはcat、ls、rmなどのUNIX系OSの基本ツールを収録し、ほぼ全てのLinuxディストリビューションで採用されています。
GNU Coreutils 9.1には、さまざまな修正や改良が含まれています。例えばcatコマンドは、copy_file_rangeシステムコール使うようになるなど、効率を高めるための改善が行われています。
主な変更点は以下の通りです。
- catコマンドが、copy_file_rangeシステムコールを利用可能な場合に使用するようになった。コピーのオフロードや再リンクがより効率的に行えるようになる。copy_file_rangeはファイルから別のファイルへ、ユーザースペースを通さずに2つのファイルディスクリプタ間でデータの範囲をコピーするために使用される。
- cp、mv、installコマンドが、ディレクトリへコピーする際にopenat-likeシステムコールを使うようになった。競合状態を回避してより効率的に動作する。
- lsコマンドはデフォルトでケイパビリティを持つファイルに色をつけなくなった。ケイパビリティほとんど使われず、1ファイルあたり約30%の処理時間を増加させるため。
- lsとstatコマンドは、デフォルトでファイルの自動マウントを試みなくなり、以前の動作に戻った。
- chmod -Rはシンボリックリンクに遭遇しても、エラーステータスで終了しなくなった。
- Apple APFSファイルシステムから他のファイルシステムにコピーする際に、ミスコピーの原因となるmacOSのcp動作を修正した。また、cpはコピー元とコピー先がAPFS上の通常のファイルである場合、コピーオンライトのクローンを作成するようになった。
変更点の詳細はこちらで確認可能です。