macOSのZshで重複するパスを削除する方法


  1. シンプルな方法: Zshの場合、$PATH変数を使用して現在のパスを取得し、重複を削除することができます。以下のコマンドをターミナルで実行してください。
export PATH=$(echo $PATH | tr : "\n" | awk '!x[$0]++' | paste -sd ":" -)

このコマンドは、次の手順を実行します:

  • tr : "\n": :を改行文字に変換します。
  • awk '!x[$0]++': 重複した行を削除します。
  • paste -sd ":" -: 改行文字を:に変換して、パスを再度結合します。

これにより、重複したパスが削除され、修正されたパスが$PATHに設定されます。

  1. コード例: Zshのスクリプトファイルに以下の内容を追加することで、重複を削除することもできます。
#!/usr/bin/env zsh
path_array=("${(@s/:/)PATH}")
unique_paths=("${(@u)path_array}")
export PATH="${(j/:/)unique_paths}"

このスクリプトでは、$PATHを配列に変換し、重複を削除してから再度文字列に変換しています。

以上が、macOSのZshで重複するパスを削除する方法です。これにより、パスの管理がより効率的になります。ご参考にしてください。