@user-123:~$ Downloads/execfile-3.4/execfile
@user-123:~$
@user-123:~$ cd Downloads/execfileparentdir-3.4/
@user-123:~/Downloads/execfileparentdir-3.4$ execfile
execfile: command not found
@user-123:~/Downloads/execfileparentdir-3.4$ ./execfile
@user-123:~/Downloads/execfileparentdir-3.4$
./
使用する具体的な理由は何ですかexecfile
?
機能について尋ねることではありません./
。つまり、端末で実行可能ファイルを実行するには、現在のディレクトリの特定のファイルアドレスが必要な理由を知りたいと思います。他の状況と同様に、現在のディレクトリにあるときに端末がファイル名を自動的に認識してファイル./
名の後にファイル名を追加するのではなく、ファイル名を入力して実行できるのはなぜですか?
編集する:
1つの理由は、セキュリティとユーザーが誤って別の(悪意のある)ファイルを実行するのを防ぐためです。ところが非常にもっともらしい理由なのに、そのためにルールの一貫性を犠牲にしているのではないだろうか?この問題を処理し、統一規則(現在のディレクトリのファイル名の予測)に例外を残さない他の方法はありませんか?マイナーな交換のように聞こえるかもしれませんが、それが最小の交換であることを確認したかったです。
答え1
これはUNIXとLinuxのアーキテクチャ決定です。主な理由は安全です。ただ、ファイルがあるディレクトリにあるという理由だけでランダムなファイルを実行したくないでしょう。これにより、実行可能ファイルの信頼できるソースをより正確に制御できます。
もちろん、現在のディレクトリをパスに追加し、MS Windowsと同様の動作をすることができます。コマンドは次のとおりです。しかし、セキュリティ上危険なのでしないでください。。
エクスポート_パス= $パス:。