web-dev-qa-db-ja.com

Linuxの検索パスに現在のディレクトリ「./」を追加する

Linuxで実行可能ファイルの検索パスに現在のディレクトリ「./」を追加するにはどうすればよいですか?

30
Brian Mckinlay

私はこれが古い答えであることを知っていますが、他の誰かが私と同じようにGoogleを介してこの質問に出くわした場合、より詳細な説明があります。

set検索パス時に検索パスに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を含まないディレクトリに変更すると、「foo」はPATHで検出されなくなります。

ただし、現在の作業ディレクトリをPATHに含めると、セキュリティ上のリスクが生じる可能性があることに注意してください。

37
Justin Doyle

permanentlyしたい場合は、現在使用しているディレクトリを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
_
6
Matthew Woo

ええと...それは私にはうまくいきませんでした。私はやります

export PATH=$(pwd):$PATH

以前に投稿されたコマンドは、文字通りドットを追加するだけです。

4
oliver
export PATH=$PATH:$PWD 

bash 4.3.48で動作します

2
gerardw

現在のディレクトリでは、長さゼロの(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''.
1
dosentmatter

これは古い質問ですが、CSHまたはTCSHを使用している人のために追加したいと思いました。

以下を.cshrcまたは.tcshrcに追加すると、現在のディレクトリが環境パス変数に追加されます。

setenv PATH {$PATH}:.
1
MBW