Làm cách nào để thay đổi pwd của tôi thành đường dẫn thực của một thư mục được liên kết tượng trưng?


83

Đây là một câu hỏi khá sơ đẳng * nix:

Đưa ra cách tạo liên kết biểu tượng sau:

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

... từ thư mục chính / home / jvf / của tôi , nhập liên kết biểu tượng myproject sẽ cho tôi một pwd / home / jfv / myproject / . Bây giờ, tôi muốn nhập thư mục mẹ của thư mục mà tôi đã liên kết biểu tượng, nhưng lệnh cd .. sẽ chỉ đưa tôi trở lại thư mục chính / 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ó một pwd bằng đường dẫn thực của thư mục myproject . Đó là, thay đổi pwd của tôi từ / home / jfv / myproject / thành / usr / local / architects / myproject / ?

Cảm ơn :)

Câu trả lời:


142

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

pwd -P

cd -P ..

7

Nếu bạn làm những điều sau, bạn sẽ ổn.

1) Trước tiên, bạn theo dõi liên kết biểu tượng của mình:

[jfv@localhost ~]$ cd myproject

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

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

3) Bây giờ, bạn có thể kiểm tra vị trí của mình và bạn sẽ thấy rằng bạn đang ở trên thư mục thực

[jfv@localhost 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 biểu tượng.


3

Theo lập trình, bạn sẽ thực hiện điều này với hàm 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;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.