Coreutils for Windows CLI
A Unix-style command suite brings familiar file and text processing to the Windows terminal without a separate Linux environment.
- 5,353 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- File utilities can write, move and delete data with the user’s permissions.
- Installation changes available commands and interactive PowerShell integration.
Install
Manual install
winget install Microsoft.CoreutilsFirst Install method, using the Windows WinGet package.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- File utilities can write, move and delete data with the user’s permissions.
- Installation changes available commands and interactive PowerShell integration.
This is third-party code. Review the repository files before installing.
What it does
The preview build of Microsoft Coreutils packages uutils/coreutils, findutils and grep in a single multi-call Windows binary. Users invoke familiar text processing, search and file commands. Shared syntax reduces differences between Linux and Windows scripts. The installer integrates with interactive PowerShell through PSReadLine to make quoted expressions and file patterns behave more like Unix. Windows built-in command conflicts are documented separately. A management command can disable individual utilities.
Who it is for. Windows developers adapting terminal workflows from Linux and investigating shell differences.
Good fit when
- An agent-prepared Unix command workflow needs adapting for Windows.
- Text processing should run in PowerShell without starting WSL.
- A conflicting utility needs disabling without removing the whole suite.
- A cross-platform workflow needs output differences identified before use.
Not a fit when
- A script depends on POSIX signals or Unix permission commands.
- The workflow requires a stable release without preview status.
- Scripts cannot be checked for path, line-ending and built-in command differences.
Example request
Prepare Unix-style log processing on Windows and identify PowerShell name conflicts separately. Leave original files unchanged.Limitations
PowerShell 7.4 or later is required, with 7.6 recommended for expanding `~`. PowerShell aliases, CMD built-ins and `PATH` order affect which program runs; the installer does not remove aliases. Windows lacks POSIX signals and Unix permission bits, so some utilities are omitted and permission checks can differ. CRLF line endings and backslashes in output can change how the next command in a pipeline handles that text.
How to disable. Disable a conflicting utility with `coreutils-manager disable <utility name>` or uninstall the Windows package. Remove custom shell-profile aliases separately.
FAQ
How do I install the suite?
Run `winget install Microsoft.Coreutils`, then check your PowerShell version and use `--help` for the utility you need.
Why does Get-Command still show an alias?
Integration rewrites interactive input but keeps the PowerShell alias table. `Get-Command ls` and `Get-Help ls` may still refer to built-ins; compare the [conflict table](https://github.com/microsoft/coreutils#shell-conflicts).
How do I disable one utility?
Use `coreutils-manager disable <utility name>` with the actual utility name. See `coreutils-manager --help` for other management actions.
Can I keep using /dev/null?
Use `NUL` on Windows. The documented example is `find . -name "*.log" > NUL`.
Why are chmod and chown absent?
Windows uses ACLs rather than Unix permission bits, and these commands are omitted. Identify permission operations before porting a script and use an appropriate Windows tool.
Discussion
No questions or reviews yet.
Related
CLI toolsuutils coreutils provides Rust file utilities that can sit beside system commands for comparisons with existing scripts.
nnn manages files in a terminal with selection, batch renaming, disk analysis, bookmarks and optional plugin extensions.
Windows Dev Skills
win-dev-skills
Agent Plugins 1.0 from Microsoft for GitHub Copilot CLI, Claude Code and Codex: native Windows apps on WinUI 3 and the Windows App SDK. A preview version
broot is a terminal file manager that calculates directory sizes in the background to show large folders before cleanup.
OpenCode 1C Portable for Windows
OpenCode 1C Portable
A portable OpenCode build for Windows x64 with the full 79-skill 1C development set, with the risky web-publish skill disabled by default
A VS Code and Cursor extension for 1C: vanessa-runner commands, metadata, debugging, tests and skills for AI agents.
README in short
Interactive PowerShell retains the backtick as its escape character. Existing symbolic links can be read without elevation; creating them requires Developer Mode or elevated permissions.