コンピューターに2つの別々のファイルがあります。
which execfile
/usr/local/bin/
/usr/bin/
したがって、2つの異なるディレクトリに同じ名前の2つのファイルがあります。実行するコマンドを正確に指定するにはどうすればよいですか?
コマンドを実行するときに、コマンドへのフルパスを次のように指定できます。
/usr/bin/execfile
または
/usr/local/bin/execfile
そのパスで正確なファイルを実行するには
/usr/local/bin/execfile
または
/usr/bin/execfile
また、両方が同じファイルに属しているかどうかも確認してください-リンクのように
ls -al /usr/bin
ls -al /usr/local/bin
それらがリンクされているかどうかを確認します
それらがリンクされている場合、uは違いなしで実行できます。それ以外の場合は、フルパスを指定する必要があります。
コマンドfooを実行しようとすると、fooがディレクトリで検索されます指定されたのと同じ順序で、PATH環境変数によって指定されます。これを回避したい場合は、実行可能ファイルへのフルパスを入力してください。
ターミナルにこれを入力します。
echo $PATH
実際のPATH環境変数の内容を確認します。
たとえば、常に/ bin内で最初の実行可能ファイルを実行する場合は、/ binが$ PATH内で最初に来るようにします。ホームディレクトリの.profileファイルでPATHを指定できます。したがって、上記の例では、ファイルを編集して、次の行を最後に配置します。
pATH =/bin:$ PATHをエクスポートします
これはユーザーに対してのみ機能します。システム全体で$ PATHを指定する場合(.profileで変更するユーザーを除くすべてのユーザーで機能します)、上記の同じ行をファイル/ etc/profileに追加します(root権限が必要です)。 。)
また、プロファイルファイルは最初にのみ解析されることを忘れないでください。つまり、個人の.profileファイルを編集する場合は、シェルで再解析する必要があります。これをログアウトして再度ログインするか、次のように入力することができます。
ソース〜/ .profile
システム全体の変更については、次のように入力します
ソース/ etc/profile
これにより、現在のシェルセッションでプロファイルファイルが再解析されます。完全なブートストラップシステムで再度解析する場合は、セッションを再開することをお勧めします。
また、bash以外のシェルを使用すると、これが変わる可能性があることにも注意してください。
Bashのmanページ内にいくつかの興味深い情報があります: http://linux.die.net/man/1/bash
「コマンドの実行」のセクションを参照してください。
〜/ .profileにエイリアスを書き込みます:
alias execfile='/usr/local/bin/execfile'
次回のログイン後、適切なバージョンが自動的に選択されます。フルパスで他のものを開始します。
/usr/local/bin/execfile
/usr/bin/execfile