Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

rmlint finds space waste and other broken things on your filesystem and offers to remove it.



  • …Duplicate Files and duplicate directories.
  • …Nonstripped binaries (i.e. binaries with debug symbols)
  • …Broken symbolic links.
  • …Empty files and directories.
  • …Files with broken user or/and group ID.

Differences to other duplicate finders:

  • Extremely fast (no exaggeration, we promise!)
  • Paranoia mode for those who do not trust hashsums.
  • Many output formats.
  • No interactivity.
  • Search for files only newer than a certain mtime.
  • Many ways to handle duplicates.
  • Caching and replaying.
  • btrfs support.
  • ...

It runs and compiles under most Unices, including Linux, FreeBSD and Darwin. The main target is Linux though, some optimisations might not be available elsewhere.


Chances are that you might have rmlint already as readily made package in your favourite distribution. If not, you might consider compiling it from source.


Detailed documentation is available on:

Most features you'll ever need are covered in the tutorial:

An online version of the manpage is available at:

Sometimes we can be reached via IRC: #rmlint on


If you found bugs, having trouble running rmlint or want to suggest new features please read this.

Also read the BUGS section of the manpage to find out how to provide good debug information.


Here's a list of developers to blame:

Christopher Pahl 2010-2017
Daniel Thomas 2014-2017

There are some other people that helped us of course. Please see the AUTHORS distributed along rmlint.


rmlint is licensed under the conditions of the GPLv3. See the COPYING file distributed along the source for details.