coreutils.exe

91 commands · one binary · no WSL

把 Unix 的
命令集
装进 Windows

microsoft/coreutils 打底,uutils 的 findutils、grep、sed、diffutils、tar 补齐, 再加几个只有 Windows 才需要的小工具 —— 合成一个原生 EXE,不依赖 MSYS2、Cygwin 或 WSL。

sed29.5% find26.8% diff13.7% grepxargs4.3% cmp2.9% tardfreewtopwinfo
面积 = 源码行数
在 microsoft 原版 76 个命令之上新增 13 个实现,合计 41,756 行 Rust。悬停任意色块查看明细。
  • uutils 生态 · 7 个
  • 本项目自研 · 6 个
  • 另 la、unwas 为别名,不单独计行数

composition

这个二进制由什么构成

命令
91
Rust 源码
124,741行
单一可执行文件
10.48MiB
microsoft 基础
82,985行
uutils 生态
36,417行
本项目自研
5,339行

面积与占比均取自各命令对应实现 crate 的 Rust 源码行数(docs/scripts/gen-data.mjs 自动生成,随源码变动)。行数不等于二进制体积贡献 —— 后者还受泛型实例化、LTO 与链接期裁剪影响。

install

三步装完

  1. 01

    下载

    从 Releases 取 coreutils-Titor-Z.exe,Inno Setup 打包,无需预装运行时。

  2. 02

    安装

    运行安装器,自动写入 PATH,并为核心命令建立硬链接 —— 直接敲 sed 也能用。

  3. 03

    验证

    新开一个终端,coreutils.exe --list 会列出全部 91 个命令。

sources

三个来源,一个入口

microsoft/coreutils

76 命令

上游把 Rust 版 coreutils 移植到 Windows 的成果,是整个二进制的地基。

源码 →

uutils 生态

7 命令

findutils(find、xargs)、grep、sed、diffutils(diff、cmp)、tar,按统一的多调用协议接入。

接入细节 →

本项目自研

8 命令

dfree、wtop、winfo、was、free、which、la、unwas —— 只做 Windows 上缺的那部分。

源码 →

known gaps

我们没装作它有

下列能力在整合上游时被逐个实测过,结论是不接入、不包装 —— 与其提供一个会崩的命令, 不如让它明确报错。

能力实测结论原因
awk 的 split / gsub / sprintf / for-in运行期崩溃上游 todo!() 未实现
diff3 / sdiff未实现上游零实现
egrep / fgrep未实现零实现,可用 grep -E/-F 替代
procps 的 ps / pidof运行期崩溃依赖 /proc,Windows 不可用