
Vamos supor que a pasta raiz com a qual estou trabalhando seja frameworks/av
, e esta pasta tenha o seguinte conteúdo:
-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/
Em frameworks/av/include/media/stagefright
, encontro este link, foundation
que pela sua descrição deve apontar para frameworks/av/foundation/...
:
lrwxrwxrwx 1 <user> <user> 57 Jul 16 2018 foundation -> ../../../foundation/include/media/stagefright/foundation//
O que realmente me intriga é que não há nenhuma pasta foundation
, frameworks/av
mas posso seguir o link perfeitamente. O verdadeiro alvo, conforme dado por readlink -f foundation
, é frameworks/av/media/libstagefright/foundation/include/media/stagefright/foundation
.
O que está acontecendo aqui? Como pode foundation
ser traduzido magicamente em media/libstagefright/foundation
?
Responder1
Quando você desce, frameworks/av/include/media/stagefright
há pelo menos um link simbólico pelo qual você passa. Na verdade, o caminho lógico existe frameworks/av/include/media/stagefright
, mas o físico não.
Em seguida, o link simbólico em questão sobe três níveis ( ../../../
) e mais adiante, mas usa a estrutura de diretórios físicos que você obviamente não conhece. Seu shell ainda pode rastrear o caminho lógico.
CompararPor que ls ..
mostra o conteúdo pai real quando estou dentro de um diretório de link simbólico?