Corionis “setgo” is a command-line utility that allows the user to change the current directory using a short easy-to-remember name. Each “go” command is prefixed with a dash “-” so all “go” commands are unique and do not conflict with existing commands.
“setgo” creates and maintains any number of “go” commands for each user on a supported operating system. This allows each user to have “go” commands that meet their individual needs.
Setgo is a “shell script” written for UNIX, Linux, and other similar operating systems. The original version of setgo was written in 1991 and the script has been ported to a wide variety of UNIX-based operating systems including Solaris, HP-UX, IBM AIX, Redhat, Fedora, Ubuntu, CentOS, and Debian. There is also a Windows version, see Setgo-Windows.
The current implementation is oriented around the Bash (Borne Again SHell) although porting the script to other shells such as sh or ksh is a simple matter.
How setgo Works
At login time the shell executes one or more scripts to setup the runtime environment. The setgo utility uses “alias” to associated the desired name with a command sequence that changes the current directory. Because these aliases are “sourced” before the command line prompt is presented to the user (i.e. the $ or # prompt) the aliases become part of the current environment. This is similar to the way a user’s PATH string is set.
Because no UNIX or Linux command begins with a dash “-” each setgo command uses that character as a prefix to make the “go” command unique.
The setgo utility is provided for free and “as is” with no guarantee or warranty expressed or implied. If you break it you own both parts.
Port it, extend it, pass it around.
The setgo utility is a plain-text shell script.
Download: setgo, version 3.1, shell script.
Download: setgo, version 3.1, zip archive.
If you downloaded the shell script simply copy it to a location on your PATH. If you downloaded the zip archive unpack the script to a location on your PATH. Personally I place it in /usr/local/bin/.
The setgo file needs execute permissions. Run this:
chmod 775 setgo
The file maintained by setgo is ~/.go in your home directory. So the “go” commands are available when you login the ~/.go file should be “sourced” in your .bashrc, .bash_user, .profile or whatever login script file your shell executes at login time.
if [ -f ~/.go ]; then source ~/.go fi
The ~/.go file is automatically created if it does not exist in your home directory.
setgo . -- Create new "go" command for current directory. setgo work -- Create new "go" command named -work. setgo -f -- find all "go" commands with the current directory. setgo -f work -- find all "go" commands contain 'work'. setgo -d work -- delete existing "go" command -work. setgo -e . -- edit the "go" command for the current directory. -work -- change to the "work" location. -. -- refresh "go" commands after adding a new one. rego -- refresh "go" commands after adding a new one.
setgo - Quick directory change helper
Simple script to maintain a file of "Go" commands ... aliases used to quickly change directories with a simple name. For example, if you are currently in /etc/init.d and run the command:
a line is added to the file ~/.go that will contain:
alias -- -init='cd /etc/init.d'
which says "add an alias called -init which, when typed at the command line, will execute the command: cd /etc/init.d".
The file ~/.go is maintained with a series of aliases that all have a leading - (dash). This file should be "sourced" in your .bashrc, .bash_user, .profile or whatever login script file so the aliases will be included in your environment.
Example: source ~/.go or . ~/.go
The ~/.go file should also contain the Additional Commands.
setgo [-d][-e][-f] name Options: -d delete name from ~/.go file. Does not unalias Go command. -e edit the ~/.go file. EDITOR is coded in this script. -f find all go entries containing name. If name is not specified then use the current directory name. name logical "Go" name for the current directory. If "." (dot) is specified then the name of the current directory is used. If neither -d or -f are used then a new go name is added. To use a "Go" command type: -name
These commands are automagically added:
-. re-sources the ~/.go file. rego alias for -. (dash dot). delgo name delete entry "name". This command also does an unalias of the entry.
~/.go The 'go' command file.`