usuario renombrar por para nombre masivo consola como comando carpeta cambiar archivos linux symlink pwd

linux - renombrar - ¿Cómo cambio mi pwd a la ruta real de un directorio enlazado?



renombrar archivos linux masivo (3)

Aquí hay una pregunta * nix bastante elemental:

Dada la siguiente creación de enlace simbólico:

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

... desde mi directorio principal / inicio / jvf / , al ingresar al enlace simbólico myproject me da un pwd / home / jfv / myproject / . Ahora, me gustaría ingresar al directorio padre del directorio al que he enlazado, pero el comando cd .. solo me llevará de regreso a mi directorio principal / home / jfv / . ¿Hay alguna forma de escapar de la ruta de enlace simbólico que he ingresado, y en su lugar tener una pwd igual a la ruta real del directorio myproject ? Es decir, cambiando mi pwd desde / home / jfv / myproject / en / usr / local / projects / myproject / ?

Gracias :)


Programáticamente, harías esto con la función de biblioteca 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; }


Si haces lo siguiente, deberías estar bien.

1) Primero sigues tu enlace simbólico:

[jfv@localhost ~]$ cd myproject

2) Ahora ejecuta el siguiente comando:

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

3) Ahora, puedes verificar tu ubicación y verás que estás en el directorio físico

[jfv@localhost myproject]$ pwd

El resultado será el siguiente:

/usr/local/projects/myproject

Ahora, todo lo que hagas será local y no en el enlace simbólico.


Solo use la bandera -P (física):

pwd -P cd -P ..