Как мне изменить свой пароль на реальный путь к каталогу с символической ссылкой?

StackOverflow https://stackoverflow.com/questions/2299157

  •  21-09-2019
  •  | 
  •  

Вопрос

Вот довольно элементарный вопрос *nix:

Учитывая следующее создание символической ссылки:

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

...из моего домашнего каталога /домашняя/jvf/, входя в мой проект символическая ссылка дает мне пароль /home/jfv/myproject/.Теперь я хотел бы войти в родительский каталог каталога, на который я указал символическую ссылку, но CD .. команда вернет меня только в мой домашний каталог /домашняя/JFV/.Есть ли способ избежать введенного мной следа символической ссылки и вместо этого иметь pwd, равный фактическому пути мой проект каталог.То есть, изменив мой пароль с /home/jfv/myproject/ в /usr/local/projects/myproject/?

Спасибо :)

Это было полезно?

Решение

Просто используйте -P (физический) флаг:

pwd -P

cd -P ..

Другие советы

Если вы сделаете следующее, с вами все будет в порядке.

1) Сначала вы переходите по своей символической ссылке:

[jfv@localhost ~]$ cd myproject

2) Теперь вы выполняете следующую команду:

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

3) Теперь вы можете проверить свое местоположение и увидите, что находитесь в физическом каталоге.

[jfv@localhost myproject]$ pwd

Результат будет следующим:

/usr/local/projects/myproject

Теперь все, что вы делаете, будет локальным, а не по символической ссылке.

Программно это можно сделать с помощью библиотечной функции 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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top