「-P」は組み込み「type」の「-ap」と同じですか?

「-P」は組み込み「type」の「-ap」と同じですか?

Bashマニュアルから

type [-afptP] [name ...]

各名前に対してコマンド名として使用される場合、どのように解釈されるかを表示します。

-pオプションを使用している場合、typeは実行するディスクファイルの名前を返し、-tが "file"を返さない場合は何も返しません。

-P オプションは、-t が "file" を返さなくても、すべての名前に対してパス検索を強制します。

コマンドがハッシュされている場合、-pと-Pはハッシュ値を出力します。これは必ずしも$ PATHの最初のファイルである必要はありません。

-aオプションを使用すると、type次の実行可能ファイルを含むすべての場所を返します。file。これには、-pオプションが使用されていない場合にのみエイリアスと機能が含まれます。

  1. file-aオプションを使用すると、次の名前のtypeファイルを返します。文書「代わりname に?」

  2. -P同じですか-ap

ありがとうございます。

答え1

  1. おそらくそうです。
  2. 完全なものではなく。したがって、ユースケースは-P明確です。-P「ストロンガー」として使用できます-p。たとえば、

    $ type [ [ is a shell builtin

    $ type -p [

    上記のtype -p [ように何も返されません(すべてのマニュアルがこのようにして実行するように指示されているのでtype -t [意味があります)。builtin-p

    しかし:

    $type -P [ /usr/bin/[

    このフラグは、-P検索がPATH変数内で行われるように強制し、いくつかの出力を取得します。


つまり、私のシステムでは、異なる数の重複項目が出力されますtype -ap。たとえば、私に1行だけを提供しながら3回作成します。これは、/ usr / binがさまざまな場所にシンボリックリンクされている可能性があります。別の(微妙な)違いがあります。type -Ptype -ap echo/usr/bin/echotype -P echo

-a オプションを使用すると、type は以下を含むすべての項目を返します。実行可能ファイルNamed 。このオプションも使用されていないfile場合にのみ、エイリアスと関数が含まれます。-p

だからこうすれば喜んで戻ってきますが、sudo touch /bin/bogus私には何も与えられません。type -P bogus/usr/bin/bogustype -ap bogus

関連情報