Coreutils for Windows
(github.com/microsoft)- WindowsでUNIXスタイルのコアユーティリティをネイティブに実行でき、Linux/macOS/WSLで使っていた同じコマンドとパイプラインをそのまま利用可能
- Microsoftが管理するビルドで、uutils/coreutils、findutils、grepを単一のマルチコールバイナリに統合
- 同じコマンド/フラグ/パイプラインが同じように動作するため、既存のスクリプトを変換なしで移植可能
- Linux/macOS/WSL/コンテナ/Windows間の移動を摩擦なくすることが目標
- PowerShell 7.4以降が必要(
~対応は7.6以降を推奨)- 一部のコマンドはCMD・PowerShellの組み込みコマンドと名前が重複しており、PATHの順序とエイリアステーブルに応じて実行可否が決まる
- 未提供コマンド:
dir/expand/more(組み込みDOSコマンドと衝突)、kill(シグナルなし)、timeout(killに依存)、whoami(Windows組み込みコマンドと衝突) findとsortは元のDOSコマンドの統合ポートで、hostnameはWindows組み込みコマンドのスーパーセット
- Windowsの環境差が存在
/dev/nullの代わりにNULを使用、POSIXシグナル非対応(Ctrl+Cのみ動作)- パス区切り文字は
/・\\の両方を許容し、ファイル権限はPOSIXビットではなくACLベース - CRLF改行は大半が透過的に処理されるが、
uniqなどバイト単位の動作では差異が出る可能性あり - シンボリックリンクの読み取りはそのままできるが、新しいシンボリックリンクの作成には開発者モードまたは管理者権限のターミナルが必要
- POSIX専用の概念(
chmod、chown、id、whoなど)と、Windowsでは不要なコマンド(dircolors、shred、unameなど)は意図的に除外 - MITライセンス: Rust + PowerShell + Inno Setupで実装
まだコメントはありません。