Microsoft ships Coreutils for Windows to mirror Linux commands

At Build 2026, Microsoft announced Coreutils for Windows, a native Windows package of Linux command-line utilities built on the Rust-based uutils Coreutils project. The goal is to let developers reuse scripts and workflows across Linux, macOS, Windows, and WSL
For developers who live in terminals, the annoyance is familiar: you write a script with Linux commands, switch environments, and suddenly the workflow breaks—not because you changed your logic, but because the commands don’t behave the same way on Windows.
Microsoft tried to put an end to that friction at Build 2026. The company announced the release of Coreutils for Windows, bringing many commonly used Linux command-line utilities to Windows as native applications.
The project is built on the open-source uutils project, a cross-platform rewrite of GNU coreutils in Rust. Microsoft said it is designed to make it easier for developers to move between Linux. macOS. Windows. and Windows Subsystem for Linux (WSL) without changing workflows. Microsoft’s framing was blunt: developers constantly move between platforms. but familiar commands don’t work consistently. forcing workarounds. lost speed. and context switching.
To address this, Microsoft said it built Coreutils for Windows from the uutils open-source project—a cross-platform reimplementation of GNU Coreutils in Rust. Microsoft described the result as Linux-like command-line utilities that run natively on Windows.
The pitch isn’t just convenience. Microsoft also said the goal is to make existing commands and tools work across platforms so that scripts can be used on Windows without modification or other tools.
Coreutils for Windows is released on GitHub as a Microsoft-maintained package. That package combines uutils/coreutils, findutils, and a GNU-compatible grep implementation into a single binary.
The Windows side doesn’t rely on many separate executables either. Microsoft said it created a single coreutils.exe binary that contains all the functionality of each program, and then maps individual command names to it.
Coreutils for Windows includes commands commonly used in Linux such as cat, cp, find, grep, hostname, ls, mv, pwd, rm, sleep, tee, and uptime.
Installation is handled through WinGet, using the command: winget install Microsoft.Coreutils.
Once installed, the setup creates NTFS hardlinks for each supported command. Microsoft specifically said hardlinks such as ls.exe, cp.exe, cat.exe, and rm.exe point to c:Program Filescoreutilscoreutils.exe.
When a user launches one of those commands, Windows loads coreutils.exe. Microsoft said coreutils.exe then determines which utility to run based on the name of the command that was executed. The approach allows Microsoft to maintain a single executable while still providing individual Linux-style commands.
To show what’s happening on disk, Microsoft pointed to using fsutil hardlink list coreutils.exe, which it said shows dozens of command names—including cat.exe, cp.exe, cut.exe, base64.exe, and others—referencing the same file on disk.
Not every Linux command name lands cleanly on Windows, though. Microsoft shared a compatibility table showing how each utility behaves in different Windows shells, acknowledging that many Linux command names conflict with existing Command Prompt and PowerShell commands.
Microsoft’s examples focused on what is included with the package: ls, cat, cp, mv, rm, pwd, sleep, and tee.
But Microsoft also stressed that whether the Coreutils version is executed depends on the shell being used, the order of directories in the system PATH, and the PowerShell alias table. In other words, the “same command” can still mean different things depending on how Windows is configured.
Several other commands are not shipped because they conflict with existing Windows commands. Microsoft listed dir, more, paste, and whoami as examples of utilities it did not include.
There are also gaps tied to Unix standards themselves. Microsoft said it did not release several popular Unix utilities that rely on POSIX functionality, which it said is unavailable on Windows. Those missing commands include chmod, chown, chroot, nohup, tty, and who.
Microsoft also said it did not release the kill or timeout commands, because Windows does not support POSIX signals—while noting that this may be possible in the future.
Microsoft’s warning sounded familiar to anyone who has tried to port scripts between operating systems: there may be differences between Linux functionality and how commands work in Windows due to differences in line feeds, file permissions, and POSIX support.
Coreutils for Windows was announced as part of Microsoft’s broader push to make Windows more developer-friendly. During Build 2026, the company also announced WSL containers, a built-in way to create, run, and interact with Linux containers on Windows using native CLI and API tools.
Microsoft Coreutils for Windows Build 2026 uutils GNU coreutils Rust Linux commands on Windows WSL WinGet coreutils.exe NTFS hardlinks cybersecurity none
So like… I can type ls on Windows now? Finally.
I don’t get why Windows needs Linux commands anyway. Isn’t that just gonna make things more confusing for regular people? My cousin tried something with WSL once and it broke instantly.
Wait they built “coreutils.exe” which is basically just like copying GNU stuff over to Windows right? If it’s native, does it also mean malware can use coreutils too lol (kidding… kinda). Also Rust always sounds scary to me, but I guess it’s fine?
This is good and all but Microsoft already had some commands working through WSL. So is this just WSL without the “learning curve” or is it actually different? I saw someone say the workflows still won’t match because Windows paths are weird, like /mnt/c vs C: or whatever. Not gonna lie I’m skeptical it won’t create new workarounds.