t q*_*t q 3 bash ubuntu windows-10 windows-subsystem-for-linux
我正在从 Windows 运行 Ubuntu。
当我从newFolder根目录中调用的Windows 创建一个文件夹C:\Users\myuser\AppData\Local\lxss\root\Newfolder时,当我运行时从 Bash创建一个文件夹时,我ls没有看到刚刚创建的新文件夹。
我该如何解决这个问题,以便我可以从 Windows 创建文件夹和文件,然后从 Bash 访问它们?
从 Windows 10 版本 1903 开始,可以使用\\wsl$\. 所以你可以explorer.exe .从 bash运行或\\wsl$\直接在资源管理器的地址栏中输入
请参阅Windows 10 版本 1903 中 WSL 的新增功能?
再次警告您不得通过 AppData 文件夹访问您的 Linux 文件!
对于旧版本的 Windows 10,请参见下文
WSL 根文件系统中的 Linux 文件是专门使用存储在 NTFS 扩展属性中的 POSIX 权限创建的。您可以通过运行看到fsutil file layout lxss\root并注意那里的$EA流。如果你直接从 Windows 创建文件,你会搞砸,因为 win32 应用程序对 Linux 及其文件元数据一无所知
例如,当您使用 Windows 应用程序/工具打开、创建和/或修改发行版根目录下的文件时,就会出现问题:由于该文件是使用 Windows 工具创建的,因此该文件将没有任何 Linux 文件元数据(例如权限、所有者、访问/更新时间戳等)。因此,对于 Linux(仅接收 Linux 文件元数据),文件可能会报告为空,甚至可能不存在,或者可能有一些元数据,但该元数据可能无法反映文件的详细信息,导致文件内容被破坏。
因此 MS 大胆警告说
在任何情况下,请勿使用 Windows 应用程序、工具、脚本、控制台等创建和/或修改 Linux 文件。
从 Windows 创建/更改 Linux 文件可能会导致数据损坏和/或损坏您的 Linux 环境,需要您卸载并重新安装发行版!
仅与 Linux 相关的文件应仅从 WSL 创建。如果要创建两个系统都可以访问的文件,请在 WSL 根目录之外创建它们,然后通过安装点从 WSL 访问,/mnt例如/mnt/drive/path
如果您想在 Windows 文件系统上创建文件但保留区分大小写,则使用
fsutil file setCaseSensitiveInfo <directory name> enable
Run Code Online (Sandbox Code Playgroud)
该标志也可以检查 fsutil file queryCaseSensitiveInfo <directory name>
另请参阅如何从 Windows 10 WSL 访问 linux/Ubuntu 文件?
| 归档时间: |
|
| 查看次数: |
20185 次 |
| 最近记录: |