"-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"stronger"로 사용할 수 있습니다 -p. 예를 들어:

    $ type [ [ is a shell builtin

    $ type -p [

    위에서 말한 type -p [대로 아무 것도 반환되지 않습니다 (모든 설명서에 이런 식으로 수행하라고 나와 있으므로 type -t [의미가 있습니다 ).builtin-p

    하지만:

    $type -P [ /usr/bin/[

    이 플래그는 -P검색이 PATH변수 내에서 이루어지도록 강제하여 일부 출력을 얻습니다.


즉, 내 시스템에서는 서로 다른 수의 중복 항목이 출력됩니다 type -ap. 예를 들어, 나에게 행 하나만 제공하면서 세 번 생성합니다. 이는 /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

관련 정보