pwd가 --physical과 같은 긴 옵션을 허용하지 않는 이유는 무엇입니까?

pwd가 --physical과 같은 긴 옵션을 허용하지 않는 이유는 무엇입니까?

명령 매뉴얼을 표시하면 다음과 같은 긴 옵션이 지원된다고 pwd나와 있습니다.--physical

$ man pwd
PWD(1)                           User Commands                          PWD(1)

NAME
       pwd - print name of current/working directory

SYNOPSIS
       pwd [OPTION]...

DESCRIPTION
       Print the full filename of the current working directory.

       -L, --logical
              use PWD from environment, even if it contains symlinks

       -P, --physical
              avoid all symlinks

그러나 다음을 입력하면 실패합니다.

$ pwd --physical
-bash: pwd: --: invalid option
pwd: usage: pwd [-LP]

긴 옵션이 나에게 적합하지 않은 이유는 무엇입니까?

RHEL 6.4를 사용하고 있습니다. pwd에 대한 별칭이 구성되지 않았습니다. 표준 pwd인 것 같습니다.

$ which pwd
/bin/pwd

답변1

bash쉘에 pwd간단히 입력할 때 사용하는 명령이 내장되어 있습니다 .pwd

맨페이지에 설명된 대로 얻으려면 pwd외부 명령을 강제로 사용해야 합니다. 실행 파일의 전체 경로를 지정 /bin/pwd하거나(귀하의 경우) env줄 앞에 추가하여 이 작업을 수행할 수 있습니다. 이 줄은 환경에 설정을 추가하는 데 사용할 수 있는 명령을 env pwd시작한 다음 (여기에서는 수행되지 않음) 시작됩니다. 지정된 명령. 내장이 없으므로 " 실제"가 실행됩니다.envenvenvpwd/bin/pwd

pwdBash에 내장된 기능의 장점 은 bash현재 디렉터리를 추적하므로 값을 얻는 데 비용이 전혀 들지 않는 반면, 외부 명령은 경로를 결정하기 위해 파일 시스템을 검색해야 하므로 훨씬 더 IO 집약적입니다.

답변2

해당 맨페이지 문서는 /bin/pwd있지만 실행할 때 pwd내장된 쉘을 사용하고 있습니다. 출력을 참조하십시오

type pwd

쉘의 내장 기능은 pwd긴 옵션을 지원하지 않습니다(쉘 문서를 참조하십시오. Bash를 사용하고 있으므로 help pwd요약이 제공됩니다).

관련 정보