É '-P' o mesmo que '-ap' para o tipo interno '?

1

Do manual do Bash

type [-afptP] [name ...]

For each name, indicate how it would be interpreted if used as a command name.

If the -p option is used, type either returns the name of the disk fi le that would be executed, or nothing if -t would not return ‘file’.

The -P option forces a path search for each name, even if -t would not return ‘file’.

If a command is hashed, -p and -P print the hashed value, which is not necessarily the file that appears first in $PATH.

If the -a option is used, type returns all of the places that contain an executable named file . This includes aliases and functions, if and only if the -p option is not also used.

  1. Será file em "Se a opção -a for usada, type retornará todos os lugares que contêm um executável chamado arquivo "significa name em vez disso?

  2. -P é igual a -ap ?

Obrigado.

    
por Tim 03.08.2017 / 22:07

1 resposta

2

  1. Provavelmente, sim.
  2. Não é bem assim. Apenas para que o caso de uso para -P seja claro: -P pode ser usado como um "mais alto" -p . Por exemplo:

    $ type [ [ is a shell builtin

    $ type -p [

    Acima, type -p [ não retorna nada, porque type -t [ diz builtin (isso faz sentido, o manual diz que -p se comporta assim, afinal).

    No entanto:

    $type -P [ /usr/bin/[

    O sinalizador -P força a procura a ficar dentro da variável PATH , portanto, obtemos alguma saída.

Dito isso, type -ap e type -P diferem, no meu sistema, na quantidade de duplicatas que eles geram. type -ap echo , por exemplo, produz /usr/bin/echo três vezes, enquanto type -P echo me fornece apenas uma linha. Isso é mais provável porque / usr / bin é linkado simbolicamente para alguns lugares diferentes. Há mais uma diferença (sutil):

If the -a option is used, type returns all of the places that contain an executable named file. This includes aliases and functions, if and only if the -p option is not also used.

Então, se eu fizer sudo touch /bin/bogus , type -P bogus felizmente retornará /usr/bin/bogus , enquanto type -ap bogus não me dará nada.

    
por 03.08.2017 / 22:52

Tags