1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2026-01-17 18:51:05 +00:00
uutils-coreutils/docs/src/extensions.md
Daniel Hofstetter e3468ba429
docs: improve uptime section
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
2024-05-12 14:26:59 +02:00

95 lines
2.9 KiB
Markdown

# Extensions over GNU
Though the main goal of the project is compatibility, uutils supports a few
features that are not supported by GNU coreutils. We take care not to introduce
features that are incompatible with the GNU coreutils. Below is a list of uutils
extensions.
## General
GNU coreutils provides two ways to define short options taking an argument:
```
$ ls -w 80
$ ls -w80
```
We support a third way:
```
$ ls -w=80
```
## `env`
`env` has an additional `-f`/`--file` flag that can parse `.env` files and set
variables accordingly. This feature is adopted from `dotenv` style packages.
## `cp`
`cp` can display a progress bar when the `-g`/`--progress` flag is set.
## `mv`
`mv` can display a progress bar when the `-g`/`--progress` flag is set.
## `hashsum`
This utility does not exist in GNU coreutils. `hashsum` is a utility that
supports computing the checksums with several algorithms. The flags and options
are identical to the `*sum` family of utils (`sha1sum`, `sha256sum`, `b2sum`,
etc.).
## `b3sum`
This utility does not exist in GNU coreutils. The behavior is modeled after both
the `b2sum` utility of GNU and the
[`b3sum`](https://github.com/BLAKE3-team/BLAKE3) utility by the BLAKE3 team and
supports the `--no-names` option that does not appear in the GNU util.
## `more`
We provide a simple implementation of `more`, which is not part of GNU
coreutils. We do not aim for full compatibility with the `more` utility from
`util-linux`. Features from more modern pagers (like `less` and `bat`) are
therefore welcomed.
## `cut`
`cut` can separate fields by whitespace (Space and Tab) with `-w` flag. This
feature is adopted from [FreeBSD](https://www.freebsd.org/cgi/man.cgi?cut).
## `fmt`
`fmt` has additional flags for prefixes: `-P`/`--skip-prefix`, `-x`/`--exact-prefix`, and
`-X`/`--exact-skip-prefix`. With `-m`/`--preserve-headers`, an attempt is made to detect and preserve
mail headers in the input. `-q`/`--quick` breaks lines more quickly. And `-T`/`--tab-width` defines the
number of spaces representing a tab when determining the line length.
## `seq`
`seq` provides `-t`/`--terminator` to set the terminator character.
## `ls`
GNU `ls` provides two ways to use a long listing format: `-l` and `--format=long`. We support a
third way: `--long`.
GNU `ls --sort=VALUE` only supports special non-default sort orders.
We support `--sort=name`, which makes it possible to override an earlier value.
## `du`
`du` allows `birth` and `creation` as values for the `--time` argument to show the creation time. It
also provides a `-v`/`--verbose` flag.
## `id`
`id` has three additional flags:
* `-P` displays the id as a password file entry
* `-p` makes the output human-readable
* `-A` displays the process audit user ID
## `uptime`
Similar to the proc-ps implementation and unlike GNU/Coreutils, `uptime` provides `-s`/`--since` to show since when the system is up.