2010-02-19 37 views
61

Dưới đây là một thay tiểu học * Câu hỏi nix:Làm cách nào để thay đổi pwd của mình thành đường dẫn thực của thư mục được liên kết?

Với việc tạo liên kết tượng trưng sau:

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

... từ thư mục chính của tôi /home/jvf/, vào myproject liên kết tượng trưng mang lại cho tôi a pwd /home/jfv/myproject/. Bây giờ, tôi muốn nhập thư mục mẹ của thư mục tôi đã liên kết với, nhưng lệnh cd .. sẽ chỉ đưa tôi quay lại thư mục chính của tôi /home/jfv/. Có cách nào để thoát khỏi đường dẫn liên kết tượng trưng mà tôi đã nhập và thay vào đó có pwd bằng đường dẫn thực tế của thư mục myproject. Tức là, thay đổi pwd của tôi từ /home/jfv/myproject/ thành /usr/local/projects/myproject/?

Cảm ơn :)

Trả lời

109

Chỉ cần sử dụng -P (vật lý) cờ:

pwd -P 

cd -P .. 
+0

Cảm ơn một tá: D –

3

lập trình, bạn sẽ làm điều này với các chức năng thư viện 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

Cảm ơn, tôi sẽ ghi nhớ điều đó nếu tôi cần phải làm điều này theo chương trình;) –

5

Nếu bạn thực hiện như sau bạn nên ổn.

1) Trước tiên bạn làm theo liên kết tượng trưng của bạn:

[[email protected] ~]$ cd myproject 

2) Bây giờ bạn thực hiện lệnh sau:

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

3) Bây giờ, bạn có thể kiểm tra vị trí của bạn và bạn sẽ thấy rằng bạn nằm trên thư mục vật lý

[[email protected] myproject]$ pwd 

Đầu ra sẽ như sau:

/usr/local/projects/myproject 

Bây giờ, mọi thứ bạn làm sẽ là cục bộ chứ không phải trên liên kết tượng trưng.

Các vấn đề liên quan