Operations 10 min read

Microsoft Brings Native Linux Coreutils to Windows – No WSL Required

Microsoft released Coreutils for Windows, a native Rust‑based implementation of common Linux commands like ls, cp, and grep that installs with a single winget command, eliminates the need for WSL, and uses a clever single‑binary hard‑link design to reduce disk usage and maintenance overhead.

Ubuntu
Ubuntu
Ubuntu
Microsoft Brings Native Linux Coreutils to Windows – No WSL Required

At Build 2026 Microsoft announced Coreutils for Windows , a native Windows port of common GNU Coreutils commands (ls, cp, grep, find, etc.) built on the Rust‑rewritten uutils project and distributed under the MIT license. Installation is a single winget install Microsoft.Coreutils command or a GitHub release download.

Why Coreutils?

Cross‑platform developers often maintain separate scripts for Linux/WSL and Windows CMD, leading to duplicated CI/CD pipelines, documentation, and onboarding friction. Coreutils solves this by providing the same commands and arguments on Windows, allowing identical scripts to run unchanged.

What Coreutils Is

Instead of directly porting GNU Coreutils C code, Microsoft integrated three upstream uutils crates ( uutils/coreutils, uutils/findutils, uutils/grep) written in Rust, which offers cross‑platform binaries, memory safety, and high compatibility with GNU behavior.

Design: One Binary, Many Commands

Traditional approaches ship a separate .exe for each command. Microsoft’s solution creates a single coreutils.exe file and uses NTFS hard links (e.g., ls.exe, cp.exe) that point to it. At runtime the program reads argv[0] to determine which command to execute, achieving zero redundancy, minimal disk footprint, and simple updates (only coreutils.exe needs replacement).

Installation & Usage

winget install Microsoft.Coreutils

After installation commands behave like their Linux counterparts:

# List files with colors
ls -la --color=auto
# Search logs
grep ERROR app.log
# Recursive find
find . -name "*.js" -type f
# Pipe example
find . -name "*.log" | grep ERROR | sort
# Delay
sleep 5 && echo "done"

A helper tool coreutils-manager can enable/disable individual commands or show help.

Supported and Missing Commands

Supported (partial list): ls, cp, mv, rm, cat, mkdir, rmdir, pwd, echo, date, sort, tee, sleep, hostname, uptime, etc.

Intentionally omitted because they clash with Windows built‑ins or rely on POSIX signals, permissions, or devices: dir, more, whoami, kill, timeout, chmod, chown, chgrp, chroot, groups, id, users, who, tty, stty, mkfifo, mknod, etc.

Microsoft may add Windows‑specific alternatives for some omitted commands in the future.

Shell Compatibility

CMD: most commands work out of the box.

PowerShell 7.4+: some commands conflict with built‑in aliases (e.g., ls maps to Get-ChildItem). Resolve by using the full path ( coreutils.exe ls), adjusting PATH, or removing the alias ( Remove-Item Alias:ls -Force).

PowerShell 7.6+: supports tilde expansion (~) and is the recommended version.

Windows‑Specific Pitfalls

Line endings: Windows uses CRLF, which can affect tools like uniq.

No /dev/null: use > NUL instead.

No POSIX signals: Ctrl+C works but SIGTERM/SIGHUP are unavailable.

Path separators: both / and \ are accepted, but some output may use backslashes.

File permissions: Windows ACLs replace POSIX chmod and related options.

Symlinks: creation requires Developer Mode to be enabled.

WSL vs. Coreutils Comparison

Principle : WSL runs a full Linux VM; Coreutils is a native Windows binary.

Compatibility : WSL provides 100 % Linux commands; Coreutils covers common commands but lacks some POSIX features.

Performance : Coreutils has no virtualization overhead, while WSL incurs VM communication cost.

Memory usage : WSL 2 consumes ~200 MB+, Coreutils is almost negligible.

Use case : Use WSL for a complete Linux environment; use Coreutils for lightweight scripts and familiar commands on Windows.

Installation complexity : WSL requires enabling the subsystem and installing a distro; Coreutils installs with a single winget command.

One‑sentence conclusion : Choose WSL when you need a full Linux system; choose Coreutils when you just want familiar Linux commands directly in Windows.

Implications for Ubuntu Users

Pure Linux users: no need for Coreutils, but Windows colleagues can now run the same scripts.

Dual‑boot users: no longer need to remember separate Windows commands ( dir, copy, findstr) when switching to Windows.

WSL users: lightweight scripts can run directly in the Windows terminal without launching WSL.

Strategic Context

Coreutils for Windows is the latest milestone in Microsoft’s “Windows as a first‑class development platform” roadmap, following milestones such as WSL, Windows Terminal, WinGet, and sudo‑for‑Windows. It demonstrates a shift from forcing developers to adapt to Windows toward making Windows adapt to developers.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

RustShellWindowsWSLCommand-line toolsLinux commandsCoreutils
Ubuntu
Written by

Ubuntu

Focused on Ubuntu/Linux tech sharing, offering the latest news, practical tools, beginner tutorials, and problem solutions. Connecting open-source enthusiasts to build a Linux learning community. Join our QQ group or channel for discussion!

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.