`type -a ls`は3つの同じlsアドレスを生成します。

`type -a ls`は3つの同じlsアドレスを生成します。

コマンドを確認するとlsシリーズがあります。

$ type -a ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /bin/ls

フォルダから見ると

$ ls /usr/local/opt/coreutils/libexec/gnubin/ | grep "ls"
false
ls

3つではなく単一のlsコマンドです。

type -aが3つの同じ項目を生成するのはなぜですか/usr/local/opt/coreutils/libexec/gnubin/ls

答え1

/usr/local/opt/coreutils/libexec/gnubinPATHあなたに1回以上登場しました。type -a3回見てみると、lsすべての項目がそこに見つかったと報告されました。

PATH( echo "$PATH") を調べてこれを確認するか、それを操作して動作を複製して変更できます。

PATH=/bin:/bin type -a ls
PATH=/usr/local/opt/coreutils/libexec/gnubin:/bin type -a ls

環境設定 どこかで変数が複数回設定されています。これはPATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH、追加の行を複数回追加する自動化されたスクリプトを実行するためです。

関連情報