2011-12-17 4 views
1

私は~/Code/projのディレクトリにあり、GCC経由でコンパイルしたprojと呼ばれるバイナリがあり、このプログラムを実行できる方法は次のとおりです:

~/Code/proj $ ./proj 

にはどうすれば./接頭辞なしで呼び出すことができ、このディレクトリ内のすべてのバイナリに今からとても$PATHへprojディレクトリーをプッシュしていますか?

+0

使用しているプラ​​ットフォームはどれですか? –

+0

@crazy_prog:タグはLinuxに言及しています。 –

+3

パスにカレントディレクトリを置くことにセキュリティ上の問題があります。あなたが誰でも何かを落とすことができる '/ tmp'にいるとしましょう。 'ls'を実行すると、誰かが悪意のある' ls'実行ファイルを落としてしまった可能性があります。あなたが期待していたものの代わりに、何か他のことをします。もちろん、あなたのパスの順序に依存しますが、一般的にsnotの良いアイディアである –

答えて

4

export PATH="$PATH:$(pwd)"

すなわち、PATHに現在のディレクトリ(NOT .を!)追加。

+0

'-P'は何ですか、私のバージョンのbashは-Pを尊重しません。皆さんお元気で。 – shellter

+0

これは、パスのすべてのシンボリックリンクを解決することを意味します。これは本当にあなたのpwdバージョンがそれをサポートしていないことに興味があります!私はこのオプションを少なくとも3年間使ってきました。 – fge

+0

はい、実際には、私のターミナルセッションを爆破して閉じます;-)共有していただきありがとうございます。 – shellter

0

ディレクトリをPATHにプッシュすることはあまり意味がありません。

あなたPATHはちょうどあなたがあなたのPATHを変更したり、内部にいくつかのディレクトリにバイナリを置くことができ

echo $PATH 

を入力何であるかを知っています。

ログインシェルはよくあるケースであるbashであれば、あなたのパスを設定する$HOME/.bashrcまたは$HOME/.profileのいずれかのファイルを編集することができby fge

を示唆したようにあなたは、一時的にコマンドを使用してPATHを変更することができます。 (zshシェルの場合、起動ファイルは異なりますので、パスに関連するものを変更した後にrehashを実行する必要があります)。

多くのLinuxディストリビューションでは、$HOME/bin/を含むPATHが提供されます。そのディレクトリを作成し(該当する場合)、実行可能ファイルをその中にコピーすることができます。

私は、PATHにいくつかのディレクトリを持つことがよりクリーンだと分かります。実行ファイルとスクリプトを1つのディレクトリにコピーするのが好きです$HOME/bin/

関連する問題