Coreutils for Windows、UNIX 系 CLI のプレビュー公開

430文字
2分
編集

Microsoft は、Linux・macOS・WSL と同様のコマンドとパイプラインを Windows 上でそのまま使える Coreutils for Windows をプレビューとして公開した。cat.exegrep.exefind.exe など標準名のユーティリティを、単一の multi-call バイナリから提供する。Rust 実装の uutils/coreutils に加え、findutils と GNU 互換の grep を Windows 向けにまとめたビルドである。プロジェクトはプレビュー段階にある。

#インストール

WinGet から導入できる。PowerShell 7.4 以降が必要である。

powershell
winget install Microsoft.Coreutils

GitHub の Release Page から EXE を取得する方法もある。

#動作と衝突

CMD と PowerShell には同名の組み込みコマンドがあり、PATH の順序や PowerShell のエイリアスによって Coreutils 版が使われるかは環境次第である。catcpls などは PowerShell 7.4+ で組み込みと衝突しうる。dirmoreexpand は DOS 組み込みと衝突するため同梱されない。findsort は DOS 版を統合ポートとして含み、既存 CMD スクリプトの /switch 形式も UNIX 形式も併存できる。killtimeoutwhoami は Windows の信号モデルや組み込みとの理由で同梱されない。

インストーラは対話的 PowerShell で PSReadLine と連携し、echo *.txt のようなクォート付き引数を UNIX 寄りに解釈する。PowerShell のエスケープは引き続きバッククォートであり、find の括弧などは PowerShell 向けにエスケープが必要である。

#Windows 上の注意

テキストの CRLF は多くのユーティリティで透過的に扱われるが、パターンの $ やバイト数には影響しうる。/dev/null の代わりに NUL を使う。POSIX 信号や権限ビットに依存するコマンドは意図的に除外されている。シンボリックリンクの作成は Developer Mode または昇格ターミナルが必要である。

#参考文献