当我运行WSL bash shell时,我可以使用“ln-s”命令创建符号链接。无论我使用的是NTFS文件系统还是WSL文件系统,符号链接都会按预期创建。具体地说,WSL文件系统中的链接就像Linux符号链接一样工作,而NTFS文件系统中的符号链接是Windows符号链接,我可以在WSL和Windows中使用它。
有些人可能会说,我应该使用Git for Windows,它在我克隆repo时创建适当的Windows符号链接。唯一的问题是,我们有一些工具编写成每个人都使用的bash脚本,这些工具称为Git。它们在Linux上运行良好,但在WSL中,由于符号链接问题,它们的性能不如预期。我发现我需要所有的命令行开发人员工具在WSL中运行,这样它们就可以互相调用,传递文件路径和env变量等等。所以对我来说运行Git for Windows真的不是一个选项。
有什么办法可以解决这个问题吗?如果WSL bash shell能够正常工作,那么git的Linux版本中的一个小改动肯定也可以解决这个问题。这有点Windows和Linux之间的哲学斗争的味道。或者这是在Git for Windows之前遗留下来的...在这种情况下,肯定有一种方法为那些想要使用Windows符号链接的人启用符号链接的新处理方式。
这可能是Windows和Linux的Windows子系统中的一个问题。
仿真Linux环境使用symlink(2)
系统调用创建符号链接,这与ln-s
命令的操作非常相似。
之所以难以支持,是因为Windows符号链接的功能不如Unix符号链接。Unix符号链接可以指向任何位置,与该位置的对象无关,目标不需要存在。另一方面,Windows符号链接指向文件或目录,但固定在一种类型上。
您可以尝试在一个新的存储库中运行git config core.symlinks true
,看看这是否能如您所期望的那样工作;可能会,也可能不会。如果不是,您可以查看Git for Windows maintainer是否会向上游发送他们正在使用的补丁,它最终可能包含在较新版本的Git中,从而包含在较新版本的Linux发行版中。然而,由于Linux发行版通常提供稳定的版本,这将需要时间,通常是年的数量级,除非您下拉一个较新的包。
不过,通常情况下,您不能期望Unix代码在NTFS文件系统上充分工作,因为它是根本不同的,微软甚至记录了这种行为。Microsoft在添加符号链接时就知道(或者应该知道)Unix符号链接的功能,并且出于某种原因选择了不同的方式。我个人认为那是一个错误,我们现在就在这里。
问题内容: 我要查看我是在Windows还是Unix等上,我需要查看什么? 问题答案: 的输出platform.system()如下: Linux: Linux Mac: Darwin Windows: Windows
问题内容: 是否可以在任何操作系统(例如Windows,Linux,Mac OS X)上执行JAR文件?我想构建一个要在Linux,Windows和Mac OS X上运行的简单应用程序。JAR文件可以在安装了Java的任何操作系统上运行吗? 问题答案: Jar文件可在存在JVM的任何OS上运行。
问题内容: 我正在尝试使用Boot2Docker在Windows上使用共享文件夹来启动Mongo容器。开始使用时,我在容器内收到一条警告消息,内容为: 启动mongo后立即关闭。 有关如何解决此问题的任何提示或技巧? 问题答案: 显然,根据要点和Sev(),mongo不支持通过VirtualBox共享文件夹安装卷: 参见mongoDB Productions Notes : MongoDB需要一个
我的代码的一个特点是,它显示了一个频率条形图,其中有给定的数据。在我的MacBook上,它工作的非常好,但是当我尝试在我的Razer刀片上使用它时,它并不像预期的那样工作。我提供了截图,所以你可以看到发生了什么,如果你可以给我一些关于这一点的见解。 Windows操作系统:https://gyazo.com/5107EED39D548687AD772A60E065055B Mac操作系统:http
问题内容: 我正在使用系统调用创建具有完全权限(777)的文件,但是当我这样做时,只能看到权限为(755)。您能告诉我为什么文件权限不是777吗? 码 输出量 问题答案: 系统维护着一个称为的值;它是进程的属性,就像PID(进程ID)或EUID(有效用户ID)一样。它将设置为(八进制),表示系统应从创建的文件中删除组和其他写入权限。 您可以在使用前致电,以免更改您指定的模式。您当然应该这样做以证明
问题内容: 一直在尝试学习Docker,让我感到困惑的是,在Docker容器中实际上如何运行与主机操作系统不同的Linux。 如果我们假设我的Docker主机正在运行RedHat并且我从Ubuntu映像启动了一个容器,那么是否满足以下条件?: 从逻辑上讲,如果Ubuntu映像占用空间约为550MB,那么Docker Daemon是否会从映像注册表中实际下载(价值550MB)Ubuntu映像以创