I used to retrieve carefully-constructed
cdcommands from my history. But then, I got a goat.
[ ~/Pictures ] $ goat dev ~/Documents/devel # create a link to the dev directory [ ~/Pictures ] $ ls # see that there is no ~/Pictures/dev directory here seahorses wallpapers [ ~/Pictures ] $ cd dev # the goat framework's got you covered! [ ~/Documents/devel ] $
Sometimes you jump around your filesystem tree a lot and you end up putting a couple of ugly aliases into your shell's rc file.
I should try it, even if it is dumb!
With goat you can easily manage your ninja shortcuts - just type
goat p ~/Projects to introduce a new link and then
cd p to jump to its destination.
Rad! I can do
cd ....now instead of performing a horse galloping-like waltz with
../being my miserable dance floor. I'm cloning this goat straight away!
BTW, Bash completion is now fully working with goat's shortcuts.
Makefile for more details.
# make install
If you'd rather install it locally for your user only then:
$ make PREFIX="$HOME/.local" install
Make sure that
~/.local/binis in your
$ cat <<'EOF' >> ~/.bashrc case "$PATH" in *$HOME/.local/bin*) ;; *) PATH="$HOME/.local/bin:$PATH" ;; esac EOF
Make sure that files inside
~/.local/etc/bash_completion.dare actually sourced by the Bash completion library:
$ cat <<'EOF' >> ~/.bash_completion if [[ -d ~/.bash_completion.d ]] then for f in ~/.local/etc/bash_completion.d/* do [[ -f $f ]] && source "$f" done fi EOF
Installation of MinGW-compatible version of goat
# make install-mingw
Create a shortcut named “f” to ~/Documents/dev/freebsd (no need to use the link command explicitly here): $ goat f ~/Documents/dev/freebsd Follow a link to change a directory with cd(1): $ cd f Take the “f” shortcut and enter its destination subdirectory with just one command: $ pwd /home/0mp $ cd f/ports $ pwd /usr/home/0mp/freebsd/ports Create a shortcut named “p” to the current directory: $ goat p . Go up the filesystem tree with ... (same as the standard “cd ../../”): $ cd ... List all your links: $ goat list dots -> /usr/home/0mp/.dotfiles down -> /usr/home/0mp/Downloads f -> /usr/home/0mp/freebsd p -> /usr/home/0mp/freebsd/ports pa -> /usr/home/0mp/freebsd/patches src -> /usr/home/0mp/freebsd/svn/src svn -> /usr/home/0mp/freebsd/svn Delete a link (or more): $ goat delete f p Delete all the links which point to directories with the given prefix: $ goat deleteprefix "$HOME/Documents"
Licensed under BSD license. Copyright © 2016-2018 Mateusz Piotrowski