내 암호를 심볼릭 링크 된 디렉토리의 실제 경로로 어떻게 변경합니까?


83

여기에 다소 기본적인 * nix 질문이 있습니다.

다음과 같은 심볼릭 링크 생성이 주어집니다.

ln -s /usr/local/projects/myproject/ myproject

... 내 홈 디렉토리 / home / jvf / 에서 myproject 심볼릭 링크를 입력하면 pwd / home / jfv / myproject /가 제공 됩니다. 이제 심볼릭 링크 한 디렉토리의 상위 디렉토리를 입력하고 싶지만 cd .. 명령을 실행하면 홈 디렉토리 / home / jfv /로 돌아갑니다 . 어쨌든 내가 입력 한 심볼릭 링크 흔적을 피하고 대신 myproject 디렉토리 의 실제 경로와 동일한 pwd를 가지고 있습니까? 즉, 내 pwd를 / home / jfv / myproject / 에서 / usr / local / projects / myproject /로 변경 합니까?

감사 :)

답변:


142

그냥 사용 -P(실제) 플래그 :

pwd -P

cd -P ..

8

다음을 수행하면 괜찮을 것입니다.

1) 먼저 심볼릭 링크를 따릅니다.

[jfv@localhost ~]$ cd myproject

2) 이제 다음 명령을 실행합니다.

[jfv@localhost myproject]$ cd -P ./

3) 이제 위치를 확인할 수 있으며 실제 디렉토리에 있음을 알 수 있습니다.

[jfv@localhost myproject]$ pwd

출력은 다음과 같습니다.

/usr/local/projects/myproject

이제 여러분이하는 모든 일은 심볼릭 링크가 아니라 로컬이됩니다.


3

프로그래밍 방식으로 getcwd 라이브러리 함수를 사용하여이 작업을 수행합니다.

#include <unistd.h>
#include <stdio.h>

int main(int argc, char **argv)
{
    char buf[1024*1024L];
    char *cwd;

    cwd = getcwd(buf, sizeof buf);
    if (cwd == NULL) {
        perror("getcwd");
        return 1;
    }
    printf("%s\n", cwd);
    return 0;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.