How to Find and Remove Duplicate Files on Linux With FSlint

FSlint can scan selected Linux folders for duplicate files, group matching copies for review, and let you delete extra paths or merge them as hard links. The cleanup workflow is straightforward when FSlint is already installed, but the program is legacy software: many current distributions no longer package it. Check the installation notes below before following older instructions.

The figures show example layouts and filenames; the exact appearance can vary with your FSlint build and desktop theme. Start with folders that hold your own documents, photos, or downloads. Do not run a duplicate cleanup across the whole system as a first scan.

Check FSlint availability before installing

Open a terminal and check whether the graphical program is already installed:

command -v fslint-gui

If the command returns a path, launch FSlint from your app menu or run fslint-gui. If it is missing, check your distribution’s official package repository first. On Debian-based systems, apt-cache policy fslint shows whether a package candidate is available; install it with sudo apt install fslint only when your configured repository offers one. Debian’s current package search does not list FSlint, and the Debian removal record cites its dependency on unmaintained PyGTK, which was tied to Python 2.

The FSlint project page lists version 2.46, links to its source and documentation, and notes that modern Linux users may prefer a more actively maintained tool. It also links to a Snap package; the Snap Store identifies that package as fslint-unofficial, so treat it as a third-party repackaging and review its publisher and permissions before installing. Avoid relying on old tutorials that tell you to build FSlint with a make command inside the po directory; that is not a current, general installation method.

Scan folders with FSlint

1. Open the duplicate finder

Start fslint-gui. In the left-hand list, choose Duplicates if it is not already selected. You can also pass directories to the program when launching it, for example fslint-gui "$HOME/Documents"; the FSlint manual documents paths as an optional argument.

Legacy FSlint window open beside a terminal command, with the Duplicates tool selected
Open FSlint and choose the Duplicates tool before setting up a scan.

2. Limit the search path

Add only the folders you want to compare, such as Documents, Pictures, or a specific backup folder. In the Search path area, use Add to choose each directory and remove any locations you do not want included. If you launch FSlint with directory arguments, confirm that those are the paths you intend to scan.

FSlint search path set to the user-owned Documents folder
Choose a focused search path, such as Documents, before scanning.

3. Run the scan

Click Find and let FSlint finish. It can take longer when a folder contains many large files. FSlint searches subdirectories by default. If you use its command-line tool, findup -f "$HOME/Documents" lists matching paths without requesting a delete or merge operation; the -r flag turns recursion off, so leave it out when you want to include subfolders.

FSlint configured for a Documents scan with the Find button ready
Run Find on the selected folders; subfolders are included by default.

4. Read the result groups

FSlint groups duplicate files together and reports paths, sizes, dates, and a total for the results. A matching name alone does not make two files duplicates; the tool compares file contents. Expand each group and check where every copy lives. A photo in a dated archive and a photo in a current album may be identical bytes but still serve different purposes in your organization.

FSlint results grouped by duplicate files with paths, sizes, dates, and wasted-space summary
Review each group’s paths and summary before selecting any files.

5. Decide which copy to keep

Choose the copy whose location and filename you want to preserve. Check that important applications, scripts, or workflows do not rely on the other path. If you are unsure, leave that group untouched. Back up valuable files before making changes, especially when cleaning a shared folder or backup set.

One FSlint duplicate group expanded so the two file paths can be compared
Compare the full paths and file details, then decide which pathname should remain.

6. Delete only the redundant copies

Select the extra file or files, leaving at least one copy in every group, and click Delete. Some builds offer selection shortcuts under Select; inspect the selected rows before confirming any bulk action. Treat deletion as permanent unless your build clearly says otherwise. Do not select every result simply to maximize the displayed space total.

FSlint Select menu showing an all-but-first option for carefully reviewing duplicate groups
Bulk selection can help, but confirm that the intended original remains unselected.
FSlint duplicate group with a single redundant row selected and the Delete control highlighted
The redundant path is selected before Delete is applied.

7. Use Merge only when hard links are appropriate

FSlint’s Merge action replaces duplicate paths with hard links to one stored file. The paths remain available, but they refer to the same underlying file data; edits through one path affect the same data seen through the others. This is not a separate backup copy, and hard links cannot span different filesystems, as the Linux link manual explains. For ordinary personal cleanup, deleting verified extra copies is easier to understand. Use Merge only when you understand hard links and have a backup.

8. Scan again and verify

Run Find again on the same folders to confirm the duplicate groups you addressed are gone. Open the retained files to make sure they still work, then check available storage in your desktop’s disk utility or with df -h "$HOME". The result can be smaller than FSlint’s estimate if the filesystem uses compression or other storage features. Keep your backup until you are confident that no needed file was removed.

FSlint duplicate scan with the selected search path and no remaining result groups
A clean rescan confirms that no duplicate groups remain in the paths you checked.

For the duplicate workflow and findup behavior, consult the FSlint duplicate-finder manual and the FSlint command reference.

Leave a Comment

How to Record Speaker Output on Linux with Audacity

How to Record Speaker Output on Linux with Audacity

Capture Linux desktop audio in Audacity by routing its recording stream to your output device’s monitor source. Follow PulseAudio and PipeWire steps, export tips, and fixes for silent tracks.

How to Use Dropbox on Linux: Install and Sync Your Files

How to Use Dropbox on Linux: Install and Sync Your Files

Install Dropbox on Linux from the official package, sign in, sync a local folder, manage selective sync, and check status from the command line.

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

Install Inkscape from your Linux distribution’s repositories, the Ubuntu stable PPA, Snap, or Flathub, with current commands and notes for choosing a package source.

How to Find and Remove Duplicate Files on Linux With FSlint

How to Find and Remove Duplicate Files on Linux With FSlint

Use FSlint to scan selected Linux folders, review duplicate groups, and safely delete redundant files or learn when hard-link merging is appropriate.

How to Install SABnzbd on Linux and Configure It

How to Install SABnzbd on Linux and Configure It

Install SABnzbd on Ubuntu or Debian, or run it in Docker on another Linux host. Then open the web interface and configure your provider and download folders.

How to Install the Paper GTK Theme on Linux

How to Install the Paper GTK Theme on Linux

Install the Paper GTK theme from supported Linux repositories, enable it for GTK apps in GNOME Tweaks, and see what the legacy theme can and cannot change.

How to Install and Set Up Plex on OpenMediaVault with Compose

How to Install and Set Up Plex on OpenMediaVault with Compose

The old OpenMediaVault Plex plugin is archived. Set up Plex on OMV 8 with OMV-Extras, the Compose plugin, persistent storage, and Plex’s official container.

How to Clean and Speed Up Ubuntu Safely

How to Clean and Speed Up Ubuntu Safely

Clean and speed up Ubuntu with safe APT cleanup, storage checks, and startup controls that help free space and troubleshoot a sluggish desktop.

How to Install the Hiri Email Client on Linux

How to Install the Hiri Email Client on Linux

Install Hiri on Linux with its Snap package or official tarball, add a desktop launcher, and check supported accounts plus a warning about Hiri’s old Snap release.

How to Get System Specifications for a Linux PC

How to Get System Specifications for a Linux PC

Use Fastfetch and built-in Linux commands to check your distro, kernel, CPU, memory, graphics, storage, and connected devices, then save a clear report.