Создайте относительную символьную ссылку внутренняя относительная символьная ссылка

Вы могли легко записать крошечный сценарий, делающий просто это,

for f in "$@" do; echo "This is from $f"; cat -- "$f"; done
1
16.11.2013, 08:12
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

Таким образом, если мы должны были посмотреть на Ссылку на приложение в 1-м дереве, 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

Я не вижу путь вокруг этого, учитывая различия в количестве каталогов в этих 2 деревьях.

2
27.01.2020, 23:39

Теги

Похожие вопросы