如何实现linux与windows软链接底层兼容?

发布于 2022-09-04 05:56:41 字数 100 浏览 14 评论 0

即,将一个linux软链接拷贝到win环境下,在文件不被做任何修改的情况下,win依然能够使用比链接,请问如何实现?

这个问题很高端,也很棘手,有什么想法一起讨论讨论。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

原谅我要高飞 2022-09-11 05:56:41

最近刚好看到Git for Windows加了软链接支持,可用把git clone当作是一种复杂的文件复制吧。

在linux下:

mkdir symbolic-link-test
cd symbolic-link-test
git init
touch readme.md
ln -s readme.md link-to-readme.md
git add .
git commit -m "init"

然后提交到github,再在windows下用管理员权限git clone下来:

git clone -c core.symlinks=true git@xxxxx/symbolic-link-test.git

结果:

git clone

向link-to-readme.md写内容会出现在readme.md(用powershell):

powershell下向link-to-readme.md写内容

Mode里有l:

图片描述

所以复制软链接拷是可以的,大概流程:

  1. copy时记录linux下软连接的信息,例如这是个软链、指向那个文件

  2. paste到windows时,根据保存的软连接信息用Windows的Symbolic link重建文件

一点补充:如果是只复制软链,不复制指向的文件,或者软链是绝对路径,这种方法是不行的。

海风掠过北极光 2022-09-11 05:56:41

不可能兼容吧,
你可以试下在windows里用ext2fsd挂载ext分区,复制里边的软链接文件出来用hex编辑器查看下内容,通过分析文件结构来解析,
要不就试试msys+mingw里能不能readlink读出来,
或者win10预览版可以装linux子系统(ubuntu),试下?

围归者 2022-09-11 05:56:41

你应该考虑的是先在windows下挂载linux分区,然后尝试使用快捷方式或者mklink等方式从linux分区中创建一个指向连接,而不是考虑拷贝linux下已经创建好的软连接能够在windows下兼容。
理论上软连接是克服了硬链接在不同文件系统上的兼容问题的,我们可以在不同的文件分区甚至网络文件系统上创建软连接,但是考虑到windows和linux本身操作系统上的区别,你在linux下创建的软连接并不一定能保证在windows下能被正确识别并引用。所以,还是别考虑复制了,如果真有需要,试试直接挂载分区,然后用mklink从linux分区创建一个软连接到windows吧!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文