复制具有指向复制文件的符号链接的目录(目录树内)

复制具有指向复制文件的符号链接的目录(目录树内),第1张

概述复制具有指向复制文件的符号链接的目录(目录树内)

我想复制一个文件夹及其所有内容,包括子文件夹。 我在Ubuntu上使用C语言。

复制常规文件和文件夹到目前为止很简单,但复制链接的规范(现在是符号)是指它们应链接到复制的文件。 现在我只对目录树内的链接感兴趣。

(虽然我认为树之外的链接应该更容易 – 只需将完整path复制到新链接,并查明它们是否属于树中,尽pipesarnold给了我一个关于使用rsync来实现这一点的提示)

所以我有一个由readlink返回的绝对path:

如何将制表符分隔的文本复制到剪贴板从一个unixshell,同时保留选项卡?

.NET:如何使用windows“复制文件”对话框复制文件

文件复制和重命名

在windows剪贴板复制缓冲区中包含格式化信息以粘贴到Excel中

无法将成员添加到MongoDB副本集

/home/giorgos/Desktop/folder/folder1/a.pdf

最坏的情况是:

/home/giorgos/Desktop/folder/folder/folder/folder1/a.pdf

但我找不到一种方法来检索我的目录树的相对path。 如果我能find它,我可以用复制的目录名称replace它:

/home/giorgos/Desktop/march/folder/myfolder/folder/folder1/a.pdf

我不能使用cp或system()函数或那种函数,解决scheme必须是低级的。 我可以使用C库加上GNU,但请发表一个答案,无论如何,我感兴趣。

数据库拓扑devise混乱

将一个远程文件放入hadoop而不复制到本地磁盘

如何获取源文件(我想要复制的文件)和C中复制的文件信息

如何将某些文件从相同的目录复制到windows命令提示符中的另一个目录?

复制FOR循环工作,但不断给出错误“文件不能被复制到自己”

让我们假设你需要将目录SRC_DIR复制到DST_DIR ,这两者都是绝对路径(如果没有的话,使用getcwd转换它们是微不足道的)。

这个伪代码应该覆盖所有的可能性(可能需要大量的重复使用strtok来标记“/”分隔符处的路径):

if (SRC_DIR/SUBDirs/link is a symlink that points to TARGET_LOCATION) { // TARGET_LOCATION may be relative *or* absolute. Make it absolute: if (TARGET_LOCATION does not begin with '/') { prepend SRC_DIR/ to it } if (TARGET_LOCATION contains a subdirectory named '..') { replace occurances of 'SOMEDIRname/..' with '' } if (TARGET_LOCATION contains a subdirectory named '.') { replace occurances of '/.' with '' } // Now TARGET_LOCATION is an absolute path if (TARGET_LOCATION does not begin with SRC_DIR) { // symlink points outsIDe tree create symlink DST_DIR/SUBDirs/link pointing to TARGET_LOCATION } else { // symlink points insIDe tree strip SRC_DIR from beginning of TARGET_LOCATION prepend DST_DIR to TARGET_LOCATION create symlink DST_DIR/SUBDirs/link pointing to TARGET_LOCATION } }

总结

以上是内存溢出为你收集整理的复制具有指向复制文件的符号链接的目录(目录树内)全部内容,希望文章能够帮你解决复制具有指向复制文件的符号链接的目录(目录树内)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存