명령 매뉴얼을 보여주면 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에 대한 별칭이 구성되지 않았습니다. 이것은 표준 비밀번호인 것 같습니다:
$ which pwd
/bin/pwd
답변1
bash
쉘에 pwd
입력하기만 하면 사용할 수 있는 내장 명령이 있습니다.pwd
맨페이지에 설명된 내용을 얻으려면 pwd
외부 명령을 강제로 사용해야 합니다. 실행 파일의 전체 경로를 지정 /bin/pwd
하거나(귀하의 경우) env
다음을 추가하여 이 작업을 수행할 수 있습니다. env pwd
이 줄은 환경에 설정을 추가하는 데 사용할 수 있는 명령을 시작하고 (여기에서는 수행되지 않음) 시작됩니다 env
. env
지정된 명령. env
내장 기능이 없기 때문에 pwd
"real"이 구현됩니다./bin/pwd
bash 내장 명령의 장점은 pwd
현재 bash
디렉터리를 추적하므로 값을 얻는 데 드는 비용이 0인 반면, 외부 명령은 경로를 결정하기 위해 파일 시스템에서 검색해야 하므로 IO 집약적입니다.
답변2
매뉴얼 페이지에는 이 내용이 기록되어 있지만 /bin/pwd
실행하면 pwd
내장 쉘을 사용하게 됩니다.
type pwd
쉘의 내장 기능은 pwd
긴 옵션을 지원하지 않습니다(쉘 문서를 참조하십시오. Bash를 사용하고 있으므로 help pwd
요약이 제공됩니다).