{"id":13436251,"url":"https://github.com/uutils/coreutils","last_synced_at":"2025-09-09T21:12:12.667Z","repository":{"id":37269724,"uuid":"11847500","full_name":"uutils/coreutils","owner":"uutils","description":"Cross-platform Rust rewrite of the GNU coreutils","archived":false,"fork":false,"pushed_at":"2025-05-12T10:02:10.000Z","size":27543,"stargazers_count":20191,"open_issues_count":412,"forks_count":1460,"subscribers_count":198,"default_branch":"main","last_synced_at":"2025-05-12T18:08:11.611Z","etag":null,"topics":["busybox","command-line-tool","coreutils","cross-platform","gnu-coreutils","rust"],"latest_commit_sha":null,"homepage":"https://uutils.github.io/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uutils.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"uutils"}},"created_at":"2013-08-02T16:22:56.000Z","updated_at":"2025-05-12T17:33:45.000Z","dependencies_parsed_at":"2022-07-13T15:59:44.638Z","dependency_job_id":"7e9e96f1-b96b-47b7-8acc-098dddc3e64d","html_url":"https://github.com/uutils/coreutils","commit_stats":{"total_commits":6998,"total_committers":486,"mean_commits":14.39917695473251,"dds":0.9054015432980852,"last_synced_commit":"4997851d5b19c6d3a25006e22a62a654e427d7ef"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uutils%2Fcoreutils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uutils%2Fcoreutils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uutils%2Fcoreutils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uutils%2Fcoreutils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uutils","download_url":"https://codeload.github.com/uutils/coreutils/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253795144,"owners_count":21965486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["busybox","command-line-tool","coreutils","cross-platform","gnu-coreutils","rust"],"created_at":"2024-07-31T03:00:45.892Z","updated_at":"2025-09-09T21:12:12.655Z","avatar_url":"https://github.com/uutils.png","language":"Rust","readme":"\u003c!-- markdownlint-disable MD033 MD041 MD002 --\u003e\n\u003c!-- markdownlint-disable commands-show-output no-duplicate-heading --\u003e\n\u003c!-- spell-checker:ignore markdownlint ; (options) DESTDIR UTILNAME manpages reimplementation oranda --\u003e\n\u003cdiv class=\"oranda-hide\"\u003e\n\u003cdiv align=\"center\"\u003e\n\n![uutils logo](docs/src/logo.svg)\n\n# uutils coreutils\n\n[![Crates.io](https://img.shields.io/crates/v/coreutils.svg)](https://crates.io/crates/coreutils)\n[![Discord](https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord\u0026longCache=true\u0026style=flat)](https://discord.gg/wQVJbvJ)\n[![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/uutils/coreutils/blob/main/LICENSE)\n[![dependency status](https://deps.rs/repo/github/uutils/coreutils/status.svg)](https://deps.rs/repo/github/uutils/coreutils)\n\n[![CodeCov](https://codecov.io/gh/uutils/coreutils/branch/master/graph/badge.svg)](https://codecov.io/gh/uutils/coreutils)\n![MSRV](https://img.shields.io/badge/MSRV-1.85.0-brightgreen)\n[![Weblate](https://hosted.weblate.org/widget/rust-coreutils/svg-badge.svg)](https://hosted.weblate.org/projects/rust-coreutils/)\n\n\u003c/div\u003e\n\n---\n\n\u003c/div\u003e\n\nuutils coreutils is a cross-platform reimplementation of the GNU coreutils in\n[Rust](http://www.rust-lang.org). While all programs have been implemented, some\noptions might be missing or different behavior might be experienced.\n\n\u003cdiv class=\"oranda-hide\"\u003e\n\nTo install it:\n\n```shell\ncargo install coreutils\n~/.cargo/bin/coreutils\n```\n\n\u003c/div\u003e\n\n\u003c!-- markdownlint-disable-next-line MD026 --\u003e\n\n## Goals\n\nuutils coreutils aims to be a drop-in replacement for the GNU utils. Differences with GNU\nare treated as bugs.\n\nOur key objectives include:\n- Matching GNU's output (stdout and error code) exactly\n- Better error messages\n- Providing comprehensive internationalization support (UTF-8)\n- Improved performances\n- [Extensions](docs/src/extensions.md) when relevant (example: --progress)\n\nuutils aims to work on as many platforms as possible, to be able to use the same\nutils on Linux, macOS, Windows and other platforms. This ensures, for example,\nthat scripts can be easily transferred between platforms.\n\n\u003cdiv class=\"oranda-hide\"\u003e\n\n## Documentation\nuutils has both user and developer documentation available:\n\n- [User Manual](https://uutils.github.io/coreutils/docs/)\n- [Developer Documentation](https://docs.rs/crate/coreutils/)\n\nBoth can also be generated locally, the instructions for that can be found in\nthe [coreutils docs](https://github.com/uutils/uutils.github.io) repository.\n\nUse [weblate/rust-coreutils](https://hosted.weblate.org/projects/rust-coreutils/) to translate the Rust coreutils into your language.\n\n\u003c!-- ANCHOR: build (this mark is needed for mdbook) --\u003e\n\n## Requirements\n\n- Rust (`cargo`, `rustc`)\n- GNU Make (optional)\n\n### Rust Version\n\nuutils follows Rust's release channels and is tested against stable, beta and\nnightly. The current Minimum Supported Rust Version (MSRV) is `1.85.0`.\n\n## Building\n\nThere are currently two methods to build the uutils binaries: either Cargo or\nGNU Make.\n\n\u003e Building the full package, including all documentation, requires both Cargo\n\u003e and GNU Make on a Unix platform.\n\nFor either method, we first need to fetch the repository:\n\n```shell\ngit clone https://github.com/uutils/coreutils\ncd coreutils\n```\n\n### Cargo\n\nBuilding uutils using Cargo is easy because the process is the same as for every\nother Rust program:\n\n```shell\ncargo build --release\n```\n\nThis command builds the most portable common core set of uutils into a multicall\n(BusyBox-type) binary, named 'coreutils', on most Rust-supported platforms.\n\nAdditional platform-specific uutils are often available. Building these expanded\nsets of uutils for a platform (on that platform) is as simple as specifying it\nas a feature:\n\n```shell\ncargo build --release --features macos\n# or ...\ncargo build --release --features windows\n# or ...\ncargo build --release --features unix\n```\n\nIf you don't want to build every utility available on your platform into the\nfinal binary, you can also specify which ones you want to build manually. For\nexample:\n\n```shell\ncargo build --features \"base32 cat echo rm\" --no-default-features\n```\n\nIf you don't want to build the multicall binary and would prefer to build the\nutilities as individual binaries, that is also possible. Each utility is\ncontained in its own package within the main repository, named \"uu_UTILNAME\". To\nbuild individual utilities, use cargo to build just the specific packages (using\nthe `--package` [aka `-p`] option). For example:\n\n```shell\ncargo build -p uu_base32 -p uu_cat -p uu_echo -p uu_rm\n```\n\n### GNU Make\n\nBuilding using `make` is a simple process as well.\n\nTo simply build all available utilities:\n\n```shell\nmake\n```\n\nIn release mode:\n\n```shell\nmake PROFILE=release\n```\n\nTo build all but a few of the available utilities:\n\n```shell\nmake SKIP_UTILS='UTILITY_1 UTILITY_2'\n```\n\nTo build only a few of the available utilities:\n\n```shell\nmake UTILS='UTILITY_1 UTILITY_2'\n```\n\n## Installation\n\n### Install with Cargo\n\nLikewise, installing can simply be done using:\n\n```shell\ncargo install --path . --locked\n```\n\nThis command will install uutils into Cargo's _bin_ folder (_e.g._\n`$HOME/.cargo/bin`).\n\nThis does not install files necessary for shell completion or manpages. For\nmanpages or shell completion to work, use `GNU Make` or see\n`Manually install shell completions`/`Manually install manpages`.\n\n### Install with GNU Make\n\nTo install all available utilities:\n\n```shell\nmake install\n```\n\nTo install using `sudo` switch `-E` must be used:\n\n```shell\nsudo -E make install\n```\n\nTo install all but a few of the available utilities:\n\n```shell\nmake SKIP_UTILS='UTILITY_1 UTILITY_2' install\n```\n\nTo install only a few of the available utilities:\n\n```shell\nmake UTILS='UTILITY_1 UTILITY_2' install\n```\n\nTo install every program with a prefix (e.g. uu-echo uu-cat):\n\n```shell\nmake PROG_PREFIX=PREFIX_GOES_HERE install\n```\n\nTo install the multicall binary:\n\n```shell\nmake MULTICALL=y install\n```\n\nSet install parent directory (default value is /usr/local):\n\n```shell\n# DESTDIR is also supported\nmake PREFIX=/my/path install\n```\n\nInstalling with `make` installs shell completions for all installed utilities\nfor `bash`, `fish` and `zsh`. Completions for `elvish` and `powershell` can also\nbe generated; See `Manually install shell completions`.\n\nTo skip installation of completions and manpages:\n\n```shell\nmake COMPLETIONS=n MANPAGES=n install\n```\n\n### Manually install shell completions\n\nThe `coreutils` binary can generate completions for the `bash`, `elvish`,\n`fish`, `powershell` and `zsh` shells. It prints the result to stdout.\n\nThe syntax is:\n\n```shell\ncargo run completion \u003cutility\u003e \u003cshell\u003e\n```\n\nSo, to install completions for `ls` on `bash` to\n`/usr/local/share/bash-completion/completions/ls`, run:\n\n```shell\ncargo run completion ls bash \u003e /usr/local/share/bash-completion/completions/ls\n```\n\n### Manually install manpages\n\nTo generate manpages, the syntax is:\n\n```bash\ncargo run manpage \u003cutility\u003e\n```\n\nSo, to install the manpage for `ls` to `/usr/local/share/man/man1/ls.1` run:\n\n```bash\ncargo run manpage ls \u003e /usr/local/share/man/man1/ls.1\n```\n\n## Un-installation\n\nUn-installation differs depending on how you have installed uutils. If you used\nCargo to install, use Cargo to uninstall. If you used GNU Make to install, use\nMake to uninstall.\n\n### Uninstall with Cargo\n\nTo uninstall uutils:\n\n```shell\ncargo uninstall coreutils\n```\n\n### Uninstall with GNU Make\n\nTo uninstall all utilities:\n\n```shell\nmake uninstall\n```\n\nTo uninstall every program with a set prefix:\n\n```shell\nmake PROG_PREFIX=PREFIX_GOES_HERE uninstall\n```\n\nTo uninstall the multicall binary:\n\n```shell\nmake MULTICALL=y uninstall\n```\n\nTo uninstall from a custom parent directory:\n\n```shell\n# DESTDIR is also supported\nmake PREFIX=/my/path uninstall\n```\n\n\u003c!-- ANCHOR_END: build (this mark is needed for mdbook) --\u003e\n\n## GNU test suite compatibility\n\nBelow is the evolution of how many GNU tests uutils passes. A more detailed\nbreakdown of the GNU test results of the main branch can be found\n[in the user manual](https://uutils.github.io/coreutils/docs/test_coverage.html).\n\nSee \u003chttps://github.com/orgs/uutils/projects/1\u003e for the main meta bugs\n(many are missing).\n\n![Evolution over time](https://github.com/uutils/coreutils-tracking/blob/main/gnu-results.svg?raw=true)\n\n\u003c/div\u003e \u003c!-- close oranda-hide div --\u003e\n\n## Contributing\n\nTo contribute to uutils, please see [CONTRIBUTING](CONTRIBUTING.md).\n\n## License\n\nuutils is licensed under the MIT License - see the `LICENSE` file for details\n\nGNU Coreutils is licensed under the GPL 3.0 or later.\n","funding_links":["https://github.com/sponsors/uutils"],"categories":["Software","Rust","Applications","Command Line","应用程序 Applications","collections","Applications written in Rust","应用","Others","应用 Applications","Rust 程序设计","Tools","Repos","rust","Command Line Tools"],"sub_categories":["System tools","Dependency Management","系统工具 System tools","[exa](https://the.exa.website/) (Rust, MIT)","系统工具","网络服务_其他","Rust","Other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuutils%2Fcoreutils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuutils%2Fcoreutils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuutils%2Fcoreutils/lists"}