• Stars
    star
    921
  • Rank 49,603 (Top 1.0 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 12 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Quickly go back to a parent directory in linux instead of typing "cd ../../.." repeatedly

bd

Description

Quickly go back to a specific parent directory in bash instead of typing "cd ../../.." redundantly.


Installation

For OS X/macOS

Using MacPorts:

sudo port install bd

For Debian/Ubuntu

Packages available here:

https://tracker.debian.org/pkg/bd

https://launchpad.net/ubuntu/+source/bd

For Arch Linux

AUR packages available here:

https://aur.archlinux.org/packages/bd

https://aur.archlinux.org/packages/bd-git

For other OS

wget --no-check-certificate -O /usr/local/bin/bd https://raw.github.com/vigneshwaranr/bd/master/bd
chmod +rx /usr/local/bin/bd
echo 'alias bd=". bd -si"' >> ~/.bashrc
source ~/.bashrc

# If you need autocomplete support, follow these two steps
wget -O /etc/bash_completion.d/bd https://raw.github.com/vigneshwaranr/bd/master/bash_completion.d/bd
source /etc/bash_completion.d/bd

To enable case-sensitive directory name matching, use -s instead of -si in the alias.


How to use:

If you are in this path /home/user/project/src/org/main/site/utils/file/reader/whatever and you want to go to site directory quickly,

then just type: bd site

In fact, You can simply type bd <starting few letters> like bd s or bd si

If there are more than one directories with same name up in the hierarchy, bd will take you to the closest. (Not considering the immediate parent.)


Other uses:

Using bd within backticks (`bd <letter(s)>`) prints out the path without changing the current directory.

You can take advantage of that by combining `bd <letter(s)>` with other commands such as ls, ln, echo, zip, tar etc..

Example:

  1. If you just want to list the contents of a parent directory, without going there, then you can use: ls `bd p` in the given example, it will list the contents of /home/user/project/

  2. If you want to execute a file somewhere in a parent directory, `bd p`/build.sh will execute /home/user/project/build.sh while not changing the current directory.

  3. If you reside in /home/user/project/src/org/main/site/utils/file/reader/whatever and want to change to /home/user/project/test, then try cd `bd p`/test


Screenshot: bd screenshot


Thanks:


See also: