저는 상대 심볼릭 링크 내에 상대 심볼릭 링크를 생성하는 방법을 찾으려고 잠시 동안 탐색 중이었습니다. 즉...
내 프로젝트 중 하나에 내 CakePHP 템플릿 뼈대가 심볼릭 링크로 있고 내 뼈대 내에 뼈대 폴더 외부 플러그인에 대한 심볼릭 링크가 있습니다. 아이디어는 내 프로젝트 CakePHP CMS 뼈대 내에서 내 것을 심볼릭 링크하여 "응용 프로그램"을 생성할 수 있다는 것입니다. CMS 스켈레톤 심볼릭 링크 외부의 플러그인이고 스켈레톤 심볼릭 링크는 내 프로젝트 "응용 프로그램" 플러그인을 가리킵니다.
내가 의미하는 바는 다음과 같습니다.
다음 경로에 CakePHP CMS 뼈대가 있습니다.
/mnt/proj/libs/cakephp/lib/Cake/Console/Templates/skel
내 프로젝트 폴더의 경로는 다음과 같습니다
/mnt/proj/mysite.com/
그런 다음 아래와 같이 CakePHP CMS Skeleton을 내 프로젝트 폴더에 심볼릭 링크했습니다.
/mnt/proj/mysite.com/cms-skel -> /mnt/proj/libs/cakephp/lib/Cake/Console/Templates/skel
스켈레톤 내부에는 애플리케이션 플러그인에 대한 심볼릭 링크가 있습니다.
/mnt/proj/libs/cakephp/lib/Cake/Console/Templates/skel/Plugin/Application -> ../../Application
그래서 mysite.com 폴더 안의 CakePHP CMS 심볼릭 링크 폴더에
/mnt/proj/mysite.com/cms-skel/Plugin/Application -> ../../Application
문제는 위의 심볼릭 링크가 다음을 가리킨다는 것입니다.
/mnt/proj/libs/cakephp/lib/Cake/Console/Templates/Application
나는 그것을 가리킬 필요가있다.
/mnt/proj/mysite.com/cms-skel/Plugin/Application
심볼릭 링크를 사용하여 위의 작업을 수행하는 방법에 대한 아이디어는 크게 감사하겠습니다. 현재로서는 무엇을 Google에 검색해야 할지 모르겠습니다.
답변1
문제는 두 개의 디렉토리 트리에서 작동하는 단일 상대 링크를 사용하려고 하지만 링크의 상대성이 두 디렉토리 트리에서 동일하지 않다는 것입니다.
예
처음부터 디렉토리 구조를 만들었지 proj
만 그 외에는 동일합니다.
$ pwd
/home/saml/proj
이것은 lib/
나무입니다:
$ tree -lf libs/
libs
`-- libs/cakephp
`-- libs/cakephp/lib
`-- libs/cakephp/lib/Cake
`-- libs/cakephp/lib/Cake/Console
`-- libs/cakephp/lib/Cake/Console/Templates
|-- libs/cakephp/lib/Cake/Console/Templates/Application
`-- libs/cakephp/lib/Cake/Console/Templates/skel
`-- libs/cakephp/lib/Cake/Console/Templates/skel/Plugin
`-- libs/cakephp/lib/Cake/Console/Templates/skel/Plugin/Application -> ../../Application [recursive, not followed]
이것은 mysite.com/
나무입니다:
$ tree -lf mysite.com/
mysite.com
`-- mysite.com/cms-skel -> /home/saml/proj/libs/cakephp/lib/Cake/Console/Templates/skel/
`-- /home/saml/proj/libs/cakephp/lib/Cake/Console/Templates/skel//Plugin
`-- /home/saml/proj/libs/cakephp/lib/Cake/Console/Templates/skel//Plugin/Application -> ../../Application
따라서 첫 번째 트리의 애플리케이션 링크를 살펴보면 다음과 같습니다 lib/
.
$ pwd
/home/saml/proj/libs/cakephp/lib/Cake/Console/Templates/skel/Plugin
$ readlink -f Application
/home/saml/proj/libs/cakephp/lib/Cake/Console/Templates/Application
그러나 카탈로그에서 동일한 분석을 수행하면 mysite.com/
문제가 발생합니다.
$ pwd
/home/saml/proj/mysite.com/cms-skel/Plugin
$ readlink -f Application
/home/saml/proj/libs/cakephp/lib/Cake/Console/Templates/Application
어떻게 되어가나요?
음, 트리에 올라가면 mysite.com/
상위 2개 레벨 mysite.com/cms-skel/Plugin/
은 libs/cakephp/lib/Cake/Console/Templates
.
이것은 그것을 보는 데 도움이 될 것입니다:
$ pwd
/home/saml/proj/mysite.com/cms-skel/Plugin
$ readlink -f ../../
/home/saml/proj/libs/cakephp/lib/Cake/Console/Templates
두 트리의 디렉터리 수에 차이가 있으므로 이 문제를 해결할 방법이 없습니다.