概要
- Windows でも UNIX系コマンド をネイティブに使用可能
- Microsoft 公式が uutils/coreutils, findutils, grep を一体化
- Linux, macOS, WSL と同じコマンド・パイプライン互換
- WinGet やリリースページから簡単インストール
- 一部コマンドは PowerShell/CMD のビルトインと競合注意
Windows向けUNIXコアユーティリティの概要
- uutils/coreutils, findutils, grep をまとめた Microsoft公式ビルド
- Linux, macOS, WSL, コンテナ, Windows 間でスクリプトやコマンドの移植性向上
- 既存の シェルスクリプト が 無変換 でそのまま動作
- 各コマンドは --help オプション対応、詳細な使い方確認可能
- 現在は プレビュー版 として提供
インストール方法
- WinGet によるインストール
- コマンド例:
winget install Microsoft.Coreutils
- コマンド例:
- Release Page から最新版バイナリのダウンロードも可能
シェルでのコマンド競合
- PowerShell 7.4以降 必須、旧バージョン非対応
- CMD/PowerShell のビルトインコマンドと一部競合
- 競合の有無は シェル種類、PATH順序、PowerShellのエイリアス で決定
- 代表的な競合例
- cat, cp, ls, rm, sort などは 動作可能 (一部PowerShellと競合)
- dir, expand, more, paste, kill, timeout, whoami などは 非提供 または 競合で利用不可
- find, sort, hostname は Windows組込版の拡張 として動作
Windows特有の注意点
- CRLF改行
- 通常は自動対応だが、 $でのパターンマッチやバイト数指定 に影響あり
- /dev/nullの非対応
- 代替として NUL を使用(例:
find . -name "*.log" > NUL)
- 代替として NUL を使用(例:
- POSIXシグナル未対応
- SIGHUP, SIGPIPE, SIGUSR 等は利用不可、 Ctrl+C(SIGINT) は動作
- パス区切り記号
- /と**両方利用可能、出力は \区切りが多い
- ファイル権限
- POSIXパーミッション ではなく ACL で管理、一部コマンドは挙動やオプションが異なる
- シンボリックリンク
- 既存リンクの読取は可能、新規作成は 開発者モード または 管理者権限 が必要
提供されないコマンド
- POSIX依存 や Windowsで無意味・競合するもの は非提供
- 例: dd, dircolors, shred, sync, uname, chcon, chmod, chown, chroot, mkfifo, stty, who など
コントリビューション
- バグ報告、プルリクエスト 歓迎
- 詳細は CONTRIBUTING.md 参照
- リポジトリ構成、uutils本家との変更フロー について記載