
Supongamos que la carpeta raíz de lo que estoy trabajando es frameworks/av
y esta carpeta tiene el siguiente contenido:
-rw-rw-r-- 1 <user> <user> 94 Mar 21 14:34 Android.bp
drwxrwxr-x 8 <user> <user> 4096 Mar 21 14:34 camera/
-rw-rw-r-- 1 <user> <user> 5394 Jul 16 2018 CleanSpec.mk
drwxrwxr-x 4 <user> <user> 4096 Jul 16 2018 cmds/
drwxrwxr-x 8 <user> <user> 4096 Jul 16 2018 drm/
drwxrwxr-x 2 <user> <user> 4096 Mar 26 21:30 .git/
drwxrwxr-x 8 <user> <user> 4096 Mar 21 14:34 include/
drwxrwxr-x 25 <user> <user> 4096 Mar 21 14:34 media/
-rw-rw-r-- 1 <user> <user> 0 Mar 2 2018 MODULE_LICENSE_APACHE2
-rw-rw-r-- 1 <user> <user> 17680 Mar 2 2018 NOTICE
-rw-rw-r-- 1 <user> <user> 76 Jul 16 2018 OWNERS
drwxrwxr-x 3 <user> <user> 4096 Mar 21 14:34 packages/
drwxrwxr-x 14 <user> <user> 4096 Mar 21 14:34 services/
drwxrwxr-x 2 <user> <user> 4096 Jul 16 2018 soundtrigger/
drwxrwxr-x 3 <user> <user> 4096 Mar 21 14:34 tools/
En frameworks/av/include/media/stagefright
, encuentro este enlace, foundation
que por su descripción debería apuntar a frameworks/av/foundation/...
:
lrwxrwxrwx 1 <user> <user> 57 Jul 16 2018 foundation -> ../../../foundation/include/media/stagefright/foundation//
Lo que realmente me desconcierta es que no hay ninguna carpeta foundation
en frameworks/av
, pero puedo seguir el enlace sin problemas. El objetivo real, según lo indicado por readlink -f foundation
, es frameworks/av/media/libstagefright/foundation/include/media/stagefright/foundation
.
¿Que esta pasando aqui? ¿Cómo se puede foundation
traducir mágicamente media/libstagefright/foundation
?
Respuesta1
Cuando desciendes, frameworks/av/include/media/stagefright
hay al menos un enlace simbólico por el que pasas. En efecto, el camino lógico lo es frameworks/av/include/media/stagefright
pero el físico no.
Luego, el enlace simbólico en cuestión sube tres niveles ( ../../../
) y se aleja de allí, pero utiliza la estructura de directorio físico que obviamente no conoce. Sin embargo, es posible que su shell aún rastree la ruta lógica.