심볼릭 링크가없는 암호


54

나는 pwd그것이 현재 디렉토리에 들어가기 위해 사용했던 심볼릭 링크를 사용한다는 것을 알았다. 내가있는 "실제"디렉토리를 말해 줄 수 있습니까? 즉, 심볼릭 링크를 사용하지 않고 루트에서 현재 디렉토리까지의 경로입니까?

답변:


70

의 POSIX 맨 페이지에 따르면 pwd-P옵션을 사용할 수 있습니다.

-P 절대 경로명은 경로명과 관련하여 기호 링크 유형의 파일을 참조하는 파일 이름을 포함하지 않아야합니다.

그러므로

$ pwd -P

필요한 것이어야합니다.


man pwd이 명령에 대한 옵션을 찾기 위해 쉘 에 입력하면이 정보를 쉽게 찾을 수 있다고 지적하고 싶습니다 .
Chud37

7

내장 된 pwd 쉘은 쉘이 사용자가 추적 할 때 추적하는 경로를 사용합니다 cd(및 저장 $PWD). 이는 복잡한 경로에 대한 심볼릭 링크가있는 경우 실제 경로 대신 해당 디렉토리로 변경하기 위해 입력 한 내용을 알려줍니다. 이것은 대부분의 시간 동안 원하는 것을 제공하기 위해 수행됩니다.

/bin/pwd현재 디렉토리의 정식 경로를 반환 하는 getcwd시스템 호출 (요즘 라이브러리 호출 /proc/self/cwd)을 사용하여 모든 심볼릭 링크 순회를 수행합니다.

Steven D가 지적했듯이 무시 pwd하는 -P옵션이 $PWD있습니다. -L의 내용을 반환 하는 옵션 도 있습니다 $PWD. 에 대한 매뉴얼 페이지 pwd는 기본적으로 어떤 옵션이 사용되는지 말하지 않지만 경험상 위의 설명이 정확하다는 것을 알려줍니다 (쉘 pwd/bin/pwd). 그러나 당신은 아마 그것에 의존해서는 안되며 그냥 사용하십시오 pwd -P.


2
POSIXLY_CORRECT가 설정되지 않은 경우 /bin/pwdGNU 인 Linux 시스템의 동작 pwd입니다. pwd가있는 POSIX 시스템 에서 /bin. /bin/pwd$ PWD를 사용하고 심볼릭 링크가있는 경로를 반환 할 수 있습니다. GNU pwd는 환경에서 POSIXLY_CORRECT 변수를 찾을 때 POSIX 방식으로 동작합니다.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.