回答:
bash builtinを使用する場合type
、コマンドのすべての(パス内)ロケーションが表示されます。
$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls
$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf
$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch
コマンドが関数の場合、関数定義がリストされます。
$ type -a somefunc
somefunc is a function
somefunc ()
{
echo "hello, world"
}
これらの例はUbuntuシステムのものですが、結果はOS Xでも同様です。
which
、カスタムスクリプトのパスを表示しません(つまり$PATH
)。type
します。
それはあなたが探しているものに依存します。ほとんどのユーティリティはパス変数に依存しています。ただし、探しているのがパスの可能性にある場合、同じ実行可能ファイルのコピーが複数存在しない限り、実際にそれがどこにあるかを知る必要はありません。
ただし、通常のlinux / unixバイナリのようには実行されないため、これはOSXで実行されているほとんどのものには当てはまりません。以下は、パスステートメントにないものを見つけるための方法です。
見つける:
sudo find / -name <FILE>
これにより、最初の引数として指定したファイルシステムに存在するものがすべて検索されます。プライベートディレクトリを検索するには、rootとして実行する必要があります。名前が完全にわからない場合、ワイルドカードもサポートします。
ターミナル:
ファインダーにファイルがある場合は、ターミナルウィンドウを開いてファイルをドロップできます。ターミナルは、ファイルへのフルパスを表示します。
スポットライト:
かなり自明です。fiのインデックスを保持できるようにプロセッササイクルを寄付しています
which
コマンドは機能しますが、通常、このタイプの作業を行うために使用する適切なツールではありません。このU&Lに関するQ&A:unix.stackexchange.com/questions/85249/…を