심볼릭 링크는 유효하지 않은 위치를 가리키지만 작동합니다.

심볼릭 링크는 유효하지 않은 위치를 가리키지만 작동합니다.

내가 작업 중인 루트 폴더가 frameworks/av이고 이 폴더에 다음 내용이 있다고 가정해 보겠습니다.

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

에서 frameworks/av/include/media/stagefright이 링크를 찾았습니다. foundation설명에 따르면 다음을 가리켜야 합니다 frameworks/av/foundation/....

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

foundation정말 당황스러운 점은 에 폴더가 없는데도 frameworks/av링크를 잘 따라갈 수 있다는 것입니다. 에 의해 주어진 실제 목표 readlink -f foundation는 입니다 frameworks/av/media/libstagefright/foundation/include/media/stagefright/foundation.

여기서 무슨 일이 일어나고 있는 걸까요? 마술처럼 어떻게 foundation번역 할 수 있나요 media/libstagefright/foundation?

답변1

아래로 내려갈 때 frameworks/av/include/media/stagefright통과하는 심볼릭 링크가 하나 이상 있습니다. 실제로 논리적 경로는 있지만 frameworks/av/include/media/stagefright물리적 경로는 그렇지 않습니다.

그런 다음 문제의 심볼릭 링크는 세 단계 위로( ../../../) 올라가고 거기에서 더 멀리 이동하지만 이는 분명히 사용자가 인식하지 못하는 물리적 디렉토리 구조를 사용합니다. 하지만 쉘은 여전히 ​​논리적 경로를 추적할 수 있습니다.

비교하다ls ..심볼릭 링크 디렉터리 안에 있을 때 실제 상위 콘텐츠를 표시하는 이유는 무엇입니까 ?

관련 정보