例如,为什么在Windows中创建文件时,在Windows 10(bash.exe)的Linux子系统下看不到文件?
屏幕截图应说明。
文件夹:OMG是从Windows资源管理器中创建的。文件夹OMGBash是使用Linux子系统bash.exe创建的
在bash.exe之外创建文件夹或文件时,无论权限和所有权如何,我都看不到它。
为了显示我必须使用Cygwin来显示文件权限的信息,我还更改了权限以查看是否会出现该文件夹。(底部的两个命令窗口)
屏幕截图显示了文件夹,bash.exe和Cygwin权限:
我试图将所有Cygwin脚本移至Linux子系统,但是我不想重新创建每个文件,然后不得不使用bash复制并过去,然后重新格式化然后使用Dos2unix(非常麻烦)。
在GitHub上为Linux子系统找到了以下代码:
根据其他问题的讨论,不支持从Windows直接复制到Linux子系统。AppData下有一个目录(我忘了在哪里),该目录似乎包含WSL文件系统的文件。但是,如果在其中放置新文件或在其中修改现有文件,则所做的更改将无法正确反映在WSL中。
我最好的猜测是,Linux与Windows需要存储有关其文件的不同元数据(以及更多的缓存信息等,因为其磁盘缓冲模型也有所不同),并且目前这是通过存储结构的主副本来实现的Linux文件系统在某种数据库中的使用,只是将Windows文件系统用作该数据库的便捷BLOB存储。
如果确实需要执行此操作,则一种解决方法是编写一个拖放的.bat脚本或执行bash.exe -c“ mv%1 / home / $ USER /”的脚本。(您可能必须对sed和tr做一些巧妙的工作,才能将%1转换为有效的WSL路径。)
或者,您可以将文件放在Windows目录中,然后在WSL中执行“ cd〜; ln -s / mnt / c / path / to / my / files”以使它们看起来像在您的WSL主目录中吗?
我不确定是否误解了您的问题,但是您的ubuntu bash(右上角的窗口)应该可以在下访问基于Windows的磁盘/mnt
。例如,在我的计算机上/mnt/c/Users/Scott/Desktop
是Windows桌面,并且可以从vi for ex那里读取/写入文件。我不相信相反的说法是正确的。也就是说,我认为您无法从Windows资源管理器探索bash世界。
作为开发人员,我一直在d上托管项目:并将基于linux的工具指向该/mnt/d/projects/someproject/
文件夹。
确保您定期更新Windows版本,因为它们似乎在解决每个版本的很多问题,尤其是围绕符号链接和跨越Linux / Windows之间的FS边界的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句