cfiles – A Fast Terminal File Manager with Vim Keybindings

cfiles is a lightweight, fast and minimal VIM-inspired terminal file manager written in C using the ncurses library. It comes with vim like keybindings and depends on a number of other Unix/Linux tools/utilities.

cfiles - Linux Terminal File Manager
cfiles – Linux Terminal File Manager


  1. cp and mv
  2. fzf – for searching
  3. w3mimgdisplay – for image previews
  4. xdg-open – for opening programs
  5. vim – for renaming, bulk renaming and editing clipboard
  6. mediainfo – for displaying media info and file sizes
  7. sed – for removing a particular selection
  8. atool – for archive previews

In this article, we will show how to install and use cfiles terminal file manager in Linux.

How to Install and Use cfiles in Linux

To install cfiles on your Linux systems, first you need to install development tools as shown.

# apt-get install build-essential               [On Debian/Ubuntu]
# yum groupinstall 'Development Tools'		[on CentOS/RHEL 7/6]
# dnf groupinstall 'Development Tools'		[on Fedora 22+ Versions]

Once installed, now you can clone the cfiles sources from its Github repository using the git command as shown.

$ git clone

Next, move into the local repository using cd command and run the following command to compile it.

$ cd cfiles
$ gcc cf.c -lncurses -o cf

Next, install the executable by copying or moving it to a directory that is in your $PATH, as follows:

$ echo $PATH
$ cp cf /home/aaronkilik/bin/
Install cfiles File Manager
Install cfiles File Manager

Once you have installed it, launch it as shown.

$ cf
Open cfiles Terminal File Manager
Open cfiles Terminal File Manager


You can use the following keybindings.

  • h j k l – Navigation keys
  • G – Go to end
  • g – Go to top
  • H – Go to top of current view
  • M – Go to middle of current view
  • L – Go to bottom of current view
  • f – Search using fzf
  • F – Search using fzf in the present directory
  • S – Open Shell in present directory
  • space – Add/Remove to/from selection list
  • tab – View selection list
  • e – Edit selection list
  • u – Empty selection list
  • y – Copy files from selection list
  • v – Move files from selection list
  • a – Rename Files in selection list
  • dd – Move files from selection list to trash
  • dD – Remove selected files
  • i – View mediainfo and general info
  • . – Toggle hidden files
  • ' – View/Goto bookmarks
  • m – Add bookmark
  • p – Run external script
  • r – Reload
  • q – Quit

For more information and usage options, see the cfiles Github repository:

Cfiles is a lightweight, fast and minimal ncurses file manager written in C with vim like keybindings. It is a work in progress with many features yet to come. Share your thoughts about cfiles, with us via the feedback form below.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.


Leave a Reply
  1. Thanks for letting us know about this practical & cool CLI tool.

    I tried to install on Ubuntu 18.04 yet run into the following error:

    myname@mytp:~$ cd cfiles
    myname@mytp:~/cfiles$ gcc cf.c -lncurses -o cf
    cf.c:16:10: fatal error: curses.h: No such file or directory
    compilation terminated.

    Any idea how to overcome this problem?

    • @Hans

      Install the ncurses library with the following command.

      $ sudo apt-get install libncurses5-dev libncursesw5-dev    #Debian/Ubuntu
      # yum install ncurses-devel ncurses                        #RHEL/CentOS

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.