如何添加任何当前目录' ./'到Linux中可执行文件的搜索路径?
答案 0 :(得分:35)
我知道这是一个陈旧的答案,但是如果有其他人像我一样通过Google绊倒这个问题,这里有更详细的解释。
如果您想在搜索路径设置时搜索路径包含pwd
的值,请执行以下操作:
export PATH=$PATH:$(pwd)
因此,如果pwd
为/home/me/tmp
,则PATH将设为$PATH:/home/me/tmp
但是,如果你想要它,那么无论你当前的工作目录是什么,当你执行命令时(例如,pwd
的值在任何给定时间都在搜索路径中),请执行:
export PATH=$PATH:.
因此,如果pwd
为/home/me/tmp
,则PATH将设置为$PATH:.
。如果您当前的工作目录包含一个名为foo
的脚本,那么它将在您的PATH中出现。如果将目录更改为不包含foo
的目录,则#34; foo"将不再在PATH中找到。
但是,您应该注意,在PATH中使用当前的工作目录存在潜在的安全风险。
答案 1 :(得分:6)
如果您想永久将您当前所在的目录添加到PATH变量中,您可以使用
$ echo "export PATH=\$PATH:$(pwd)" >> ~/.bashrc
将$(pwd)
展开到当前目录的字符串文字,并将引用行附加到bashrc。请注意,\
中需要\$PATH
才能将$PATH
扩展到当前值。
$ 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
答案 2 :(得分:4)
export PATH=$(pwd):$PATH
之前发布的命令只是添加了点。
答案 3 :(得分:1)
export PATH=$PATH:$PWD
适用于bash 4.3.48
答案 4 :(得分:1)
这是一个老问题,但我想我会为使用CSH或TCSH的人添加它。
将以下内容添加到.cshrc或.tcshrc中会将当前目录添加到环境路径变量中。
setenv PATH {$PATH}:.
答案 5 :(得分:1)
对于当前目录,您只需使用零长度(null)目录名称。您可以使用初始或尾随冒号或双冒号。这是来自bash联机帮助页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''.