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