Я хотел бы знать, как можно преобразовать абсолютный путь символической ссылки в относительный на основе заданного каталога (который включает связанный файл) на языке c в ОС Linux (Ubuntu).
Я подумал о поиске подстроки относительного пути, но что, если он уже существует выше в иерархии папки?
Вот более конкретное описание того, что я хочу сделать:
Относительный путь:
folder/folder1/folder2
Абсолютный путь:
/home/giorgos/Desktop/folder/folder1/folder2/a.pdf
изменено на
/home/giorgos/Desktop/myfolder/folder1/folder2/a.pdf
Очевидно, я не могу просто найти и заменить "folder /", рассмотрим этот случай:
/home/giorgos/Desktop/folder/folder/folder/folder1/folder2/a.pdf
Его можно искать как в прямом, так и в обратном направлении, и если его заменить, он все равно дает неправильный вывод
Только если бы я знал относительный путь, я мог бы найти абсолютное значение в обратном направлении и заменить его, тогда результат будет правильным:
/home/giorgos/Desktop/folder/myfolder/folder/folder1/folder2/a.pdf