相対シンボリックリンク内に相対シンボリックリンクを作成する

相対シンボリックリンク内に相対シンボリックリンクを作成する

私はしばらくの間、相対シンボリックリンク内で相対シンボリックリンクを生成する方法を見つけるために探していました。つまり...

私のプロジェクトの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

両方のツリーのディレクトリ数に違いがあるため、この問題を解決する方法はありません。

おすすめ記事