【发布时间】:2023-04-02 02:55:01
【问题描述】:
我想知道如何在 linux (Ubuntu) OS 上以 c 语言根据给定目录(包括链接文件)将符号链接的绝对路径转换为相对路径。
我想搜索相对路径的子字符串,但如果它已经存在于文件夹层次结构的更高层呢?
下面是我想要做的更具体的描述: 相对路径:
folder/folder1/folder2
绝对路径:
/home/giorgos/Desktop/folder/folder1/folder2/a.pdf
改为
/home/giorgos/Desktop/myfolder/folder1/folder2/a.pdf
显然我不能简单地搜索和替换“文件夹/”,考虑这种情况:
/home/giorgos/Desktop/folder/folder/folder/folder1/folder2/a.pdf
它可以向前和向后搜索,如果替换它仍然会给出错误的输出 只有当我知道相对路径时,我才能向后搜索绝对路径并替换它,那么输出才是正确的:
/home/giorgos/Desktop/folder/myfolder/folder/folder1/folder2/a.pdf
【问题讨论】:
-
相对于什么?当前目录?
-
是的,当前目录的相对目录,我会尽量具体一点
-
我知道没有通用的预先编写的代码可以做到这一点;这个问题的背景是什么?可能有一个很好的解决方案不一定走这条路。
-
您可能是对的,我实际上是在尝试将一个文件夹及其所有内容复制到另一个文件夹,其中包括链接,我希望它们指向新文件夹的项目。认为我应该发布另一个问题?
-
我正在提出一个新问题,因为这有点笼统,请帮助there 感谢所有帮助我希望我没有把关于同一主题的两个问题弄得一团糟对不起关于它
标签: linux path symlink relative-path absolute-path