
У меня следующая структура каталогов:
/home/me/mydir
\- tiller -> ./cache/git-repo1/subdir1/tiller
\- makefiles -> ./cache/git-repo2/subdir2/makefiles
Когда я вхожу в /home/me/mydir
систему, если печатаю, ls -l
то получаю то, что и ожидалось.
Однако если я изменю /home/me/mydir/tiller
и наберу текст, ls ../makefiles
то получу сообщение об ошибке:ls: ../makefiles: No such file or directory
Как я могу получить доступ, /home/me/mydir/makefiles
используя относительный путь из /home/me/mydir/tiller
, или единственный вариант — использовать абсолютный путь?
Редактировать: Я думаю, я бьюэтот. Есть ли решение? Мне действительно нужно <cmd> ../makefiles
работать изнутри /home/me/mydir/tiller
.
решение1
Так как я действительно хочу, чтобы включения в Makefile работали, я изменил его так, include
чтобы он принимал значение из переменной окружения, которую я установил равным абсолютному пути /home/me/mydir
, то есть:
CACHE_ROOT?=..
include $(CACHE_ROOT)/makefiles/base.mk
После прочтенияэтот отличный ответ, я понял, что абсолютные пути — единственное решение.