9 releases

0.1.8 Aug 19, 2020
0.1.7 Feb 22, 2020
0.1.5 Jan 11, 2020
0.1.4 Dec 29, 2019
0.1.1 Nov 22, 2018

#1066 in Development tools


611 lines


Build status

zrs is a directory switching helper, based on rupa's z.

It tracks which directories you frequently visit, and how recently you have been using them. It will try to take you to the best matching directory for some inputs.

For example, z bar could take you to /home/you/code/bar, and z foo bar could take you to /var/lib/dogfood/libs/bombard.


zrs consists of two parts.

  • zrs is a Rust binary that needs to be in your path. cargo install zrs should work, if you have ~/.cargo/bin in your path.

  • z.sh is a helper script that must be sourced in your shell.

zrs can add this for you:

$ zrs --add-to-profile
written helper script to "/home/faux/.local/share/zrs/z.sh"

couldn't append to "/home/faux/.bashrc": Os { code: 2, kind: NotFound, message: "No such file or directory" }

appended '. .../z.sh' to "/home/faux/.zshrc"


rupa's shell implementation of z has a number of performance and safety issues. zrs solves these by being written as a single binary, and by being much more careful about touching the filesystem, and forking (releasing the shell) before doing anything slow.

Significant differences

  • some features missing
  • much faster and much less likely to lose your data file writes (try holding down return in a shell some time)
  • regex syntax is PCRE
  • missing directories will only be eliminated on explicit --clean


~210K SLoC