Symbolischer Link zeigt auf scheinbar ungültigen Ort, funktioniert aber trotzdem

Symbolischer Link zeigt auf scheinbar ungültigen Ort, funktioniert aber trotzdem

Nehmen wir an, dass der Stammordner meiner Arbeitsmappe lautet frameworks/avund dieser Ordner den folgenden Inhalt hat:

-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/

In frameworks/av/include/media/stagefrightfinde ich diesen Link, foundation, der laut seiner Beschreibung auf Folgendes verweisen sollte frameworks/av/foundation/...:

lrwxrwxrwx 1 <user> <user> 57 Jul 16 2018 foundation -> ../../../foundation/include/media/stagefright/foundation//

Was mich wirklich verwirrt, ist, dass foundationin kein Ordner vorhanden ist frameworks/av, ich dem Link aber trotzdem problemlos folgen kann. Das eigentliche Ziel, das von angegeben wird readlink -f foundation, ist frameworks/av/media/libstagefright/foundation/include/media/stagefright/foundation.

Was ist hier los? Wie kann man foundationauf magische Weise in übersetzen media/libstagefright/foundation?

Antwort1

Wenn Sie dort hinabsteigen, frameworks/av/include/media/stagefrightgibt es mindestens einen symbolischen Link, den Sie durchlaufen. Tatsächlich ist der logische Pfad vorhanden, frameworks/av/include/media/stagefrightder physische jedoch nicht.

Dann geht der betreffende Symlink drei Ebenen nach oben ( ../../../) und von dort weiter, aber dabei wird die physische Verzeichnisstruktur verwendet, die Sie offensichtlich nicht kennen. Ihre Shell kann jedoch dennoch den logischen Pfad verfolgen.

VergleichenWarum wird ls ..echter übergeordneter Inhalt angezeigt, wenn ich mich in einem symbolischen Linkverzeichnis befinde?

verwandte Informationen