$PWD란 무엇인가요? (현재 작업 디렉토리와 비교)

$PWD란 무엇인가요? (현재 작업 디렉토리와 비교)

그래서 위키피디아(협회pwd) 명령이 "작업 디렉토리 인쇄"의 약자 라는 것을 알려주는데 , 이는 의미가 있습니다.

하지만 환경 변수의 경우 "P"는 print가 아닌 다른 의미의 약어여야 합니다.

사람들이 "현재 작업 디렉터리"에 대해 이야기하는 것을 듣습니다. 이 방법이 더 듣기 좋고 직관적이지만 환경 변수는 여전히 $CWD가 아니라 $PWD라고 불리는 것 같습니다. "인쇄 작업 디렉토리 변수를 확인하셨나요?"라고 말한 사람은 없습니다.

저는 현재 웹 애플리케이션 서버인 uWSGI를 사용하고 있으며, 이를 실행하면 (uWSGI 통계 페이지에서) 다음과 같은 메시지가 표시됩니다.

"cwd":"/home/velle/greendrinks",

cwd그래서 그들은 분명히 (더 직관적인 약어)를 선호합니다 pwd.

제가 뭔가 잘못 이해하고 있는 것인지 알아내려고 노력하고 있는 것 같습니다. 아니면 환경 변수에 직관적이지 않은 이름을 부여하는 문제일까요?

답변1

그것은 당신이 무엇을하고 있는지에 따라 달라집니다. 첫째, 쉘 내장 또는 실제 바이너리인 $PWD환경 변수가 있습니다 .pwd

$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd

$PWD이제 이 플래그를 사용하지 않으면 bash 내장 기능은 단순히 현재 값을 인쇄합니다 -P. 설명된 대로 help pwd:

pwd: pwd [-LP]

    현재 작업 디렉터리의 이름을 인쇄합니다.

    옵션:

      -L
          $PWD 현재 작업 디렉터리가 지정되면 값을 인쇄합니다.
      -P
          심볼릭 링크 없이 실제 디렉터리를 인쇄합니다.

    기본적으로 "pwd"는 "-L"이 지정된 것처럼 동작합니다.

pwd반면에 바이너리는 통과합니다.getcwd(3)시스템 호출은 다음 readlink -f /proc/self/cwd과 같은 값을 반환합니다. 이를 설명하기 위해 다른 디렉토리에 연결된 디렉토리로 이동해 보십시오.

$ ls -l
total 4
drwxr-xr-x 2 terdon terdon 4096 Jun  4 11:22 foo
lrwxrwxrwx 1 terdon terdon    4 Jun  4 11:22 linktofoo -> foo/
$ cd linktofoo
$ echo $PWD
/home/terdon/foo/linktofoo
$ pwd
/home/terdon/foo/linktofoo
$ /bin/pwd
/home/terdon/foo/foo

요약하자면, GNU 시스템(예: Ubuntu)에서는 옵션을 사용하지 않는 한 동일 pwd하지만 다르며 .echo $PWD-P/bin/pwdpwd -P

원천 https://askubuntu.com/a/476633/291937

답변2

$PWD~이다현재 이름와트옥인목차.

심볼릭 링크가 있는 경우 $PWD읽기 결과는 명령 실행과 다를 수 있습니다 pwd.

관련 정보