
私はしばらくの間、相対シンボリックリンク内で相対シンボリックリンクを生成する方法を見つけるために探していました。つまり...
私のプロジェクトの1つに、私の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
問題は、2つのディレクトリツリーで機能する単一の相対リンクを使用しようとしていますが、リンクの相対性が2つのディレクトリツリーで同じではないことです。
はい
最初からディレクトリ構造を作成しました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
両方のツリーのディレクトリ数に違いがあるため、この問題を解決する方法はありません。