Navigate Deep Directories Instantly with the up.sh Shell Script
This guide explains how to install and use the up.sh shell script on Linux to jump directly to any parent directory—by level count, full name, or prefix—supporting bash, zsh, and fish shells, with tab‑completion for faster navigation.
When working in deep directory trees on Linux, repeatedly typing long cd paths can be tedious. The up.sh script provides a quick way to move up to a specific parent directory without manually traversing each level.
Installation
The script is maintained on GitHub and must be downloaded and sourced manually.
$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.bashrcAfter adding the source line, reload the shell configuration: $ source ~/.bashrc For zsh users, repeat the same steps but append to ~/.zshrc and source that file:
$ curl --create-dirs -o ~/.config/up/up.sh https://raw.githubusercontent.com/shannonmoeller/up/master/up.sh
$ echo 'source ~/.config/up/up.sh' >> ~/.zshrc
$ source ~/.zshrcFor fish users, download the fish version and source it:
$ curl --create-dirs -o ~/.config/up/up.fish https://raw.githubusercontent.com/shannonmoeller/up/master/up.fish
$ source ~/.config/up/up.fishUsage
Once installed, the up command can be used in several ways:
Simply type up to move up one level.
Specify a number to move up that many levels, e.g., up 3.
Provide a directory name to jump directly to that parent, e.g., up projects.
Use a prefix of the directory name, e.g., up pr (matches projects).
Press the Tab key after up to list possible completions.
Examples:
$ pwd
/home/alvin/projects/atb4g/ecall/src/interface
$ up
$ pwd
/home/alvin/projects/atb4g/ecall/src
$ up 3
$ pwd
/home/alvin/projects
$ up projects
$ pwd
/home/alvin/projects
$ up pr # only the first two letters are needed
$ pwd
/home/alvin/projectsConclusion
The up.sh script is a lightweight, cross‑shell utility that dramatically speeds up directory navigation in long paths, supporting numeric levels, full or partial directory names, and tab completion, making it especially useful for developers who frequently move around large codebases.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Liangxu Linux
Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
