Я хочу скопировать папку и все ее содержимое, включая подпапки. Я использую C на Ubuntu.
Копирование обычных файлов и папок до сих пор легко и делается, но спецификации для копирования ссылок (пока что символические) таковы, что они должны ссылаться на скопированные файлы. На данный момент меня интересуют только ссылки внутри дерева каталогов.
(Хотя ссылки вне дерева, я думаю, должно быть проще - просто скопируйте полный путь к новой ссылке и выясните, принадлежат ли они в дереве или нет - это сложно, хотя sarnold дал мне совет об использовании rsync
для достижения этой цели)
Итак, у меня есть абсолютный путь, возвращаемый readlink:
/home/giorgos/Desktop/folder/folder1/a.pdf
Что в худшем случае будет:
/home/giorgos/Desktop/folder/folder/folder/folder1/a.pdf
но я не могу найти способ получить относительный путь к моему дереву каталогов. Если бы я мог найти его, я мог бы заменить его на имя скопированного каталога:
/home/giorgos/Desktop/March/folder/myfolder/folder/folder1/a.pdf
Я не могу использовать функцию cp или system () или функции такого рода, решение должно быть низкого уровня. Я могу использовать библиотеки c и GNU, но, пожалуйста, оставьте ответ, если мне интересно.