Adding any current directory './' to the search path in Linux [closed]

I know this is an old answer, but if anyone else stumbles across this question via Google like I did, here's a more detailed explanation.

If you want to make it so that search path contains the value of pwd at the time you set the search path, do:

export PATH=$PATH:$(pwd)

So, if pwd is /home/me/tmp, PATH will be set to $PATH:/home/me/tmp

However, If you want it so that whatever your present working directory is at the time you execute a command (ex; the value of pwd at any given time is in the search path), do:

export PATH=$PATH:.

So, if pwd is /home/me/tmp, PATH will be set to $PATH:.. If your present working directory contains a script called foo, then it would be fount in your PATH. If you change directories to one that does not contain foo, "foo" will not be found in the PATH any more.

You should note that having your present working directory in your PATH is a potential security risk, however.


If you want to permanently add the directory you're currently in to the PATH variable you can use

$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc

which will expand $(pwd) to the string literal of your current directory and append the quoted line to your bashrc. Note the \ in \$PATH is needed to escape the expansion of $PATH to its current value.

$ pwd
/path/to/suuuuuuuuuuuuuuuuuuuuper/long/foo/directory/bin

$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc

$ tail ~/.bashrc -n 1
export PATH=$PATH:/path/to/suuuuuuuuuuuuuuuuuuuuper/long/foo/directory/bin

For the current directory, you can just use a zero-length (null) directory name. You can use an initial or trailing colon, or a double colon. This is from the bash manpage, man bash:

PATH   The  search path for commands.  It is a colon-separated list of
       directories in which the shell looks for commands (see COMMAND EXECUTION
       below).  A zero-length (null) directory name in the value of PATH
       indicates the current directory.  A null directory name may appear as two
       adjacent colons, or as an initial or trailing colon. The default path
       is system-dependent, and is set by the administrator who installs bash.
       A common value is
       ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.

Um...that didn't work for me. I would do

export PATH=$(pwd):$PATH

The command previously posted literally just adds the dot.


export PATH=$PATH:$PWD 

works with bash 4.3.48