discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
muesli/duf · source
Snapshot 0 · 2026-11-04T12:47:26Z · Go ·
Content fingerprint
e183257f8f3d66eb82882a634218b084c3c53a17c0af8551ed3e9078d414899aGitHub description at capture
Disk Usage/Free Utility - a better 'df' alternative
README at capture
# duf
[](https://github.com/muesli/duf/releases)
[](https://pkg.go.dev/github.com/muesli/duf)
[](/LICENSE)
[](https://github.com/muesli/duf/actions)
[](https://goreportcard.com/report/muesli/duf)
Disk Usage/Free Utility (Linux, BSD, macOS & Windows)

## Features
- [x] User-friendly, colorful output
- [x] Adjusts to your terminal's theme & width
- [x] Sort the results according to your needs
- [x] Groups & filters devices
- [x] Can conveniently output JSON
## Installation
### Packages
#### Linux
- Arch Linux: `pacman -S duf`
- Ubuntu (22.04 and later) / Debian (12 and later): `apt install duf`
- Fedora Linux: `dnf install duf`
- Nix: `nix-env -iA nixpkgs.duf`
- Void Linux: `xbps-install -S duf`
- Gentoo Linux: `emerge sys-fs/duf`
- Solus: `eopkg it duf`
- [Packages](https://github.com/muesli/duf/releases) in Alpine, Debian & RPM formats
#### BSD
- FreeBSD: `pkg install duf`
- OpenBSD: `pkg_add duf`
#### macOS
- with [Homebrew](https://brew.sh/): `brew install duf`
- with [MacPorts](https://www.macports.org): `sudo port selfupdate && sudo port install duf`
#### Windows
- with [Chocolatey](https://chocolatey.org/): `choco install duf`
- with [scoop](https://scoop.sh/): `scoop install duf`
#### Android
- Android (via termux): `pkg install duf`
### Binaries
- [Binaries](https://github.com/muesli/duf/releases) for Linux, FreeBSD, OpenBSD, macOS, Windows
### From source
Make sure you have a working Go environment (Go 1.23 or higher is required).
See the [install instructions](https://golang.org/doc/install.html).
Compiling duf is easy, simply run:
git clone https://github.com/muesli/duf.git
cd duf
go build
## Usage
You can simply start duf without any command-line arguments:
duf
If you supply arguments, duf will only list specific devices & mount points:
duf /home /some/file
If you want to list everything (including pseudo, duplicate, inaccessible file systems):
duf --all
### Filtering
You can show and hide specific tables:
duf --only local,network,fuse,special,loops,binds
duf --hide local,network,fuse,special,loops,binds
You can also show and hide specific filesystems:
duf --only-fs tmpfs,vfat
duf --hide-fs tmpfs,vfat
...or specific mount points:
duf --only-mp /,/home,/dev
duf --hide-mp /,/home,/dev
Wildcards inside quotes work:
duf --only-mp '/sys/*,/dev/*'
### Display options
Sort the output:
duf --sort size
Valid keys are: `mountpoint`, `size`, `used`, `avail`, `usage`, `inodes`,
`inodes_used`, `inodes_avail`, `inodes_usage`, `type`, `filesystem`.
Show or hide specific columns:
duf --output mountpoint,size,usage
Valid keys are: `mountpoint`, `size`, `used`, `avail`, `usage`, `inodes`,
`inodes_used`, `inodes_avail`, `inodes_usage`, `type`, `filesystem`.
List inode information instead of block usage:
duf --inodes
If duf doesn't detect your terminal's colors correctly, you can set a theme:
duf --theme light
### Color-coding & Thresholds
duf highlights the availability & usage columns in red, green, or yellow,
depending on how much space is still available. You can set your own thresholds:
duf --avail-threshold="10G,1G"
duf --usage-threshold="0.5,0.9"
### Bonus
If you prefer your output as JSON:
duf --json
## Troubleshooting
Users of `oh-my-zsh` should be aware that it already defines an alias called
`duf`, which you will have to remove in order to use `duf`:
unalias duf
## Feedback
Got some feedback or suggestions? Please open an issue or drop me a note!
* [Twitter](https://twitter.com/mueslix)
* [The Fediverse](https://mastodon.social/@fribbledom)