Are you tired of running multiple cd commands and ls commands while searching files and directories on your system? cdir is a cool and easy-to-use command-line utility that provides a pleasant way to navigate the bash shell and search for files. It is written in Python and uses the curses module.
Let’s briefly have an overview of some of the features it provides:
Functionalities of cdir Command
- Supports the use of arrow keys when navigating between directories and searching for files.
- Searches files by simply typing the name of the file within a directory.
- Supports Bash Shell, Windows Powershell & Command Prompt.
Here is the live preview of cdir command in action.

Installation of CDIR on Linux
To install CDIR use pip, which is Python’s package manager as shown. For this case, I’m using pip3 since it’s installed by default alongside Python3.
$ pip3 install cdir --user

Once installed, append an alias to the .bashrc file as shown:
$ echo "alias cdir='source cdir.sh'" >> ~/.bashrc
And finally, reload the .bashrc file.
$ source ~/.bashrc

To start searching files, run the cdir command:
$ cdir
This will display a list of folders in your current working directory and hidden files.

To search files, use the arrow up and down keys to navigate between directories. In the example below, all files under the Downloads folder have been displayed.

To quit using cdir tool, simply press the F11
key on your keyboard. And that’s just about it. Give it a test run and let us know how it went.
I made a similar project using python a week back. I called it a teleporter but now that I see, cdir seems better.
Anyways, check out the code here:
https://github.com/nsr-py/Teleporter
.Pardon the low quality, I am a rookie.
Dude, just use zsh with oh-my-zsh for this task as everybody does.
Good idea!
But
F11
on Gnome put my terminal in full screen.How to exit on the current directory?
Maybe add an exit on the screen.
F1 does the trick for me.
Or you could install ranger which will make this utility redundant.
Hi,
This is pretty nice to see.
But, like Vic Caballero mentioned in the comment.
Adding the export PATH command, as he had suggested, has helped to make this work.
I also came to know about the source command through this article and that’s useful.
Thank you for sharing :-)
Or … I could install Midnight Commander, which is a full-blown console-mode file manager.
I find that the point of using “ls” and “find” is that I can get filtered file lists without clearing the console, which is then easy to copy and paste into the command line.
I like Midnight Commander, like Norton Commander that I’ve used before.
Nice, I’m gonna try this
Sure, give it a try and let us know how it went.
Yes, fix something that is not broken.
I agree with you. However, I just decided to try out the tool on CentOS 8 and see how it compares to running the ls and cd commands. Honestly, I like it.
Some of the greatness innovations in the world have been realized by fixing the unbroken.
Interesting. I Will try it. Thanks
Hi,
cdir.sh is actually installed at ~/.local/bin. So, the path needs to be modified.
My apologies, no need to modify a path, that is, if using bash. But if using sh, ~/.local/bin is not automatically included in the search path.