A faster way to cd to commonly used directories
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ge e7ce1c198f v0.4 2 months ago
COPYING init 11 months ago
README v0.4 2 months ago
g.sh v0.4 2 months ago


A faster way to cd to commonly used directories. Inspired by commacd. Tested on
Bash and Dash.


On most operatin systems with Bash run:

$ curl -o ~/.g.sh -sSL https://git.nxhs.cloud/ge/g/raw/branch/master/g.sh
$ echo '[ -f ~/.g.sh ] && . ~/.g.sh' >> ~/.bashrc
$ source ~/.bashrc


Available commands (actually is aliases to functions):

g [<pattern>] goto directory. If you have single bookmark dir will be
changed without prompt. Type dir number in prompt to cd.
g_save [<path>] bookmark $PWD or <path> (save into ~/.g).

Run `g` to show the entire list of bookmarks and select the one you need.

You don't even need to press `Enter` to confirm your selection -- just type in
the bookmark number. The exception is when you have a two-digit number (or more)
and you select a bookmark whose number is less than 10. Then you have to press

You can pass the Perl regular expression (processed by grep -Pi) as an for `g`.
At the same time, if only one bookmark is found, then the directory will be
changed directly to it. If there are several bookmarks, you will be prompted to
choose the appropriate one. Also you can use autocompletion by pressing Tab.
It works in a similar way.


Previously set up your commonly used dirs. Specify dir as argument::

$ g_save ~/Documents
$ g_save ~/Downloads

or cd into dir and simply run::

$ g_save

Go to directory by number:

$ g
0 ~/Documents/
1 ~/Downloads/
: <type number here, e.g. 1>
=> cd /home/ge/Downloads

Goto '~/Downloads' directory by regex:

$ g w
=> cd /home/ge/Downloads

Another way:

$ g 'do[^c]'
=> cd /home/ge/Downloads

and etc.


v0.4 (05 Oct 2022)

* Fix parsing paths

v0.3 (05 Oct 2022)

* Refactored, added POSIX-compatibility
* Script renamed to `g.sh`
* ~/.goto_saved renamed to ~/.g
* Alias `g-save` changed to `g_save`
* Functions renamed

v0.2 (06 Feb 2022)

* ~/.gotosave renamed to ~/.goto_saved
* Alias `s` changed to `g-save`

v0.1 (07 Jan 2022)

Initial release.


Combining `commacd`, `g` and Bash ``shopt -s autocd`` option gives a great

Get `commacd` here: https://github.com/shyiko/commacd


Some `g` alternatives:

* aliases (yep, Bash builtin aliases)
* https://github.com/huyng/bashmarks