>>4934 べた PATH に . を含めない理由は以下のとおり。 ・セキュリティホールとなる。PATH=.:/bin:/usr/bin:/usr/local/bin となっていて、 cd ~foo; ls としたときに /home/foo/ls が存在したら、そのプログラムを実行 してしまう。cd /tmp; ls も同様。そのプログラムがどんな悪さをするかはわからない。 ・PATH に . を加えると、カレントディレクトリによって実行されるコマンドが異なる 可能性があるため、説明がめんどくさいし、はまりやすくなる。例えば /bin と /usr/bin に同名のコマンドがあるとして、コマンド foo をタイプしたときに、 - カレントディレクトリが /usr/bin の場合は /usr/bin/foo が実行される - カレントディレクトリが /usr/bin 以外の場合は /bin/foo が実行される というのはわかりづらい。 ・csh・tcsh・bash・zsh など、今どきなシェルを使っている場合は、 ./ からタイプした方がファイル名補完を使えるため、入力が速い。 |