web-dev-qa-db-ja.com

同じ名前で異なるコマンドを実行するにはどうすればよいですか?

コンピューターに2つの別々のファイルがあります。

which execfile
/usr/local/bin/
/usr/bin/

したがって、2つの異なるディレクトリに同じ名前の2つのファイルがあります。実行するコマンドを正確に指定するにはどうすればよいですか?

2

コマンドを実行するときに、コマンドへのフルパスを次のように指定できます。

/usr/bin/execfile

または

/usr/local/bin/execfile

そのパスで正確なファイルを実行するには

9
Jacob
/usr/local/bin/execfile

または

/usr/bin/execfile
1
Bertrand Marron

また、両方が同じファイルに属しているかどうかも確認してください-リンクのように

ls -al /usr/bin
ls -al /usr/local/bin

それらがリンクされているかどうかを確認します

それらがリンクされている場合、uは違いなしで実行できます。それ以外の場合は、フルパスを指定する必要があります。

1
shahjapan

コマンド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

「コマンドの実行」のセクションを参照してください。

1
Dom De Felice

〜/ .profileにエイリアスを書き込みます:

alias execfile='/usr/local/bin/execfile'

次回のログイン後、適切なバージョンが自動的に選択されます。フルパスで他のものを開始します。

1
fgm
/usr/local/bin/execfile

/usr/bin/execfile
0