System Administration

Essential System Tools: catfish – versatile file searching software

Last Updated on May 28, 2022

This is the seventh in our series of articles highlighting essential system tools. These are small utilities, useful for system administrators as well as regular users of Linux based systems. The series examines both graphical and text based open source utilities. For details of all tools in this series, please check the table in the summary section.

Most of the tools covered in our series to date are text-based software. This time, we’re covering Catfish. It’s a graphical search utility written in Python. Its search is powered by find and locate, with search suggestions provided by Zeitgeist. With the 1.4.6 release, Catfish became part of the Xfce family. Xfce is a lightweight desktop environment. But Catfish works well with other desktop environments like GNOME and KDE.


Installation of Catfish is straightforward with most distributions. The software is found in popular distributions’ repositories.

This is open source software, so you can download the source code, and compile it.

In operation

The interface is intentionally lightweight and minimalistic, using only GTK+3. ps_mem reports catfish consumes about 37MB of RAM.

The software can be configured using several command line options.

Click for full size

As you can see, there’s the option to use large icons, thumbnails, perform exact matches, show hidden files, together with fulltext searches.

Catfish emacs
Click for full size image

Features of catfish include:

  • polkit integration.
  • Fulltext searches i.e. search text within text files.
  • Perform operations on multiple files.
  • Optional headerbars (enabled by default).
  • Support for passwordless sudo.
  • Folder filter.
  • Image thumbnailer.
  • Drag’n’Drop of filenames from application.
  • Option to show the sidebar.
  • Internationalization support – translations are available for Afrikaans, Basque, Belarusian, Brazilian Portuguese, Bulgarian, Catalan, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, Esperanto, Finnish, French, German, Greek, Icelandic, Italian, Japanese, Kurdish, Lithuanian, Polish, Portuguese, Russian, Serbian, Slovak, Spanish, Swedish, Turkish, and Ukrainian.


Catfish is a well-designed, mature, and functional graphical file search utility. It offers good search performance, good support for themes, and is frugal with resources. Seasoned Linux users will probably prefer using the command-line. But if you’re a recent migrator from Windows, you’ll appreciate the software’s exceptional ability at finding files.

Support: Developer’s website
Developer: Sean Davis (previous developer: Christian Dywan)
License: GNU General Public License version 2 or greater

Catfish is written in Python. Learn Python with our recommended free books and free tutorials.

All the essential tools in this series:

Essential System Tools
AlacrittyInnovative, hardware-accelerated terminal emulator
BleachBitSystem cleaning software. Quick and easy way to service your computer
bottomGraphical process/system monitor for the terminal
btop++Monitor usage and stats for CPU, memory, disks, network and processes
catfishVersatile file searching software
ClonezillaPartition and disk cloning software
CPU-XSystem profiler with both a GUI and text-based
CzkawkaFind duplicate files, big files, empty files, similar images, and much more
ddrescueData recovery tool, retrieving data from failing drives as safely as possible
dustMore intuitive version of du written in Rust
f3Detect and fix counterfeit flash storage
Fail2banBan hosts that cause multiple authentication errors
fdupesFind or delete duplicate files
FirejailRestrict the running environment of untrusted applications
GlancesCross-platform system monitoring tool written in Python
GPartedResize, copy, and move partitions without data
GreenWithEnvyNVIDIA graphics card utility
gtopSystem monitoring dashboard
gWakeOnLANTurn machines on through Wake On LAN
hyperfineCommand-line benchmarking tool
inxiCommand-line system information tool that's a time-saver for everyone
journalctlQuery and display messages from the journal
kmonManage Linux kernel modules with this text-based tool
KrusaderAdvanced, twin-panel (commander-style) file manager
NeofetchSystem information tool written in Bash
NmapNetwork security tool that builds a "map" of the network
nmonSystems administrator, tuner, and benchmark tool
nnnPortable terminal file manager that's amazingly frugal
petSimple command-line snippet manager
PingnooGraphical representation for traceroute and ping output
ps_memAccurate reporting of software's memory consumption
SMCMulti-featured system monitor written in Python
TimeshiftReliable system restore tool
QDirStatQt-based directory statistics
QJournalctlGraphical User Interface for systemd’s journalctl
TLPMust-have tool for anyone running Linux on a notebook
UnisonConsole and graphical file synchronization software
VeraCryptStrong disk encryption software
VentoyCreate bootable USB drive for ISO, WIM, IMG, VHD(x), EFI files
WTFPersonal information dashboard for your terminal
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments