What happens with the Path
The path is set via a myriad of config files. It is very easy to accidentally add the same directory to the path, and there is no built-in mechanism from preventing this situation.
While it has no impact on performance, it does make reading the path more difficult (for example, when trying to see if a particular directory is in the path).
Easy Fix
When you find your path cluttered up with duplicate directories, it is relatively easy to correct this. Simply use pathmunge
to add directories instead of the typical
export PATH=/fizz/buzz:$PATH
Procedure
First, edit your /etc/bashrc (or equivalent) and add the following function:
pathmunge () { if ! [[ $PATH =~ (^|:)$1($|:) ]] ; then if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi fi }
Now you can call this function in your ~/.bashrc, ~/.bash_profile, or wherever you need to add a directory to the path. There are two ways to do this.
Insert at the beginning of the path
Using
pathmunge /path/to/dir
is the functional equivalent of
export PATH=/path/to/dir:$PATH
Append to the end of the path
pathmunge /path/to/dir after
is the functional equivalent of
export PATH=$PATH:/path/to/dir
In either case, the directory won’t be added if it already is in the path, preventing duplicates.
Technique credit: Sam Halicke and Christopher Cashell at Serverfault.