2010-02-19 30 views
61

這是一個相當基本的* nix的問題:如何將pwd更改爲符號鏈接目錄的實際路徑?

鑑於以下創建符號鏈接:

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

...從我的主目錄/家庭/ jvf/,進入的myproject符號鏈接給我a pwd /home/jfv/myproject/。現在,我想進入我已經符合鏈接的目錄的父目錄,但cd ..命令只會將我帶回我的主目錄/home/jfv/。無論如何,我都可以跳過我輸入的符號鏈接,而是有一個pwd等於myproject目錄的實際路徑。也就是說,將我的密碼從/home/jfv/myproject/改爲/usr/local/projects/myproject/

謝謝:)

回答

109

只需使用-P(物理)標誌:

pwd -P 

cd -P .. 
+0

謝謝一打:D – 2010-02-19 20:25:58

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; 
} 
+0

謝謝,我會牢記這一點,如果我需要以編程方式執行此操作;) – 2010-02-19 20:26:31

5

如果以下你應該沒問題。

1)首先你按照你的符號鏈接:

[[email protected] ~]$ cd myproject 

2)現在你執行以下命令:

[[email protected] myproject]$ cd -P ./ 

3)現在,你可以檢查你的位置,你會看到你是在物理目錄

[[email protected] myproject]$ pwd 

的輸出將是如下:

/usr/local/projects/myproject 

現在,您所做的一切將是本地的,而不是符號鏈接。