$ PATHで実行可能ファイルを隠す方法は?

$ PATHで実行可能ファイルを隠す方法は?

pipenv私のsには2つのバージョンがあります$PATH

$ where pipenv
/usr/local/Caskroom/miniconda/base/bin/pipenv #1
/usr/local/bin/pipenv #2

pipenv#1を隠し、#2が優先順位を持つようにしたいと思います。

  • /usr/local/Caskroom/miniconda/base/bin以前に保管してください。/usr/local/bin$PATH
  • alias pipenv='/usr/local/bin/pipenv'いいえ
  • no running mv /usr/local/Caskroom/miniconda/base/bin/pipenv{,.bak}
    またはrm /usr/local/Caskroom/miniconda/base/bin/pipenv(conda は将来の Pipenv のアップグレード時にその場所に Pipenv を再インストールします)
    またはpipenv#1 (一部の conda パッケージの依存関係) を削除する
    などの操作を実行します。

どうすればいいですか?

ベストアンサー1

たとえば、別のディレクトリ~/binをに配置しますPATHpipenvそのディレクトリに目的のディレクトリへのシンボリックリンクを作成します。たとえば、

  • 次の行を次の行に入れます.profile
    PATH=~/bin:$PATH
    
  • 以下を一度実行してください。
    mkdir ~/bin
    ln -s /usr/local/bin/pipenv ~/bin
    

pipenv必要に応じて動的に呼び出す項目を選択することもできます。 (たとえば、ホームディレクトリが複数のコンピュータ間で共有され、異なるコンピュータで異なるデフォルトディレクトリを使用したいpipenv場合、またはデフォルトディレクトリを選択する便利な方法が必要な場合pipenv。)これを行うには、シンボリックリンクの代わりに、作成して実行可能にします(chmod +x ~/bin/pipenv)。

#!/bin/sh
if [ -x /usr/local/bin/pipenv ]; then
  pipenv=/usr/local/bin/pipenv
elif [ -x /usr/local/Caskroom/miniconda/base/bin/pipenv ]; then
  pipenv=/usr/local/Caskroom/miniconda/base/bin/pipenv
else
  pipenv=/usr/bin/pipenv
fi
exec $pipenv "$@"

おすすめ記事