#1 楼
对于从Windows商店安装的Ubuntu:通过商店安装的每个发行版都安装到该应用程序的appdata目录中。例如:
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
-benhillis 对于WSL2,您可以从Windows(Windows 10 build 18342)访问主目录,如下所示:
\wsl$
在Linux的Windows子系统的早期版本中,Ubuntu文件系统位于
%localappdata%\Lxss
(例如,C:\Users\Username\AppData\Local\Lxss
-用Windows上的用户名替换用户名)。请参阅有关文件系统支持的WSL博客文章:WSL使用的主要文件系统是VolF。它用于存储Linux系统文件以及Linux home目录的内容。因此,VolF支持Linux VFS提供的大多数功能,包括Linux权限,符号链接,FIFO,套接字,
和设备文件。
VolF用于挂载VFS。根目录,使用
%LocalAppData%\lxss\rootfs
作为后备存储。此外,还存在几个额外的VolF安装点,最值得注意的是分别使用/root
和/home
安装的%LocalAppData%\lxss\root
和%LocalAppData%\lxss\home
。这些单独的挂载的原因是,当您卸载WSL时,默认情况下不会删除主目录
,因此存储在其中的所有个人文件都将被保留。
/>
注意
使用Windows应用程序和工具在Linux子系统中创建/修改任何文件都可能导致Ubuntu子系统中的数据损坏和数据丢失! (感谢Rich Turner建议使用这些警告语!)绝对不支持此操作。来自同一篇博客:
与Windows的互操作性
虽然VolFs文件存储在Windows上面提到的
目录中的常规文件中,但互操作性Windows不支持
。如果将新文件从
添加到这些目录之一Windows,它缺少VolF所需的EA,因此VolF不知道如何处理该文件,而只是忽略了它。保存现有文件时,许多编辑器还会
删除EA,从而再次使文件
在WSL中不可用。
您的Windows文件系统是位于Bash shell环境中的
/mnt/c
。来源:Dustin Kirkland的博客,howtogeek
评论
Lxss隐藏在我的文件系统中……导致一两分钟的头部刮伤。现在,我已经创建了一个快捷方式,但是我似乎仍然无法取消隐藏它。
– Ogaday
16年6月16日在14:04
@Ogaday,您无法使用属性窗口取消隐藏它,因为它被标记为系统目录。您可以使用attrib -s -h lxss取消隐藏它,也将其取消标记为系统目录。
–developerbmw
16年8月3日,10:59
由于我所在的位置不同,系统之间的位置似乎已更改或有所不同。我已在下面发布了我的位置。
– NicholasJohn16
16年8月10日在18:36
@souravc您能否在答案顶部添加一个重要说明,强烈建议您不要使用Windows应用程序和工具在LXSS中创建/修改任何文件:如果这样做,很可能会损坏和丢失数据!
– Rich Turner
16年7月7日在23:16
请阅读上述文章:blogs.msdn.microsoft.com/commandline/2016/11/17/…。从WSL访问Windows文件系统是安全的,这就是为什么我们将驱动器挂载在/ mnt /
– Rich Turner
17年11月14日在18:32
#2 楼
自从最初引入Bash以来,这似乎已经发生了变化,并且不适用于Windows应用商店中的发行版,或者由于我的主目录位于另一个位置,因此它不适用于所有系统:%localappdata%\lxss\home\{username}
或:
C:\Users\{user}\AppData\Local\lxss\{username}
其中
{user}
是Windows用户名,{username}
是在安装过程中设置的UNIX用户名。因此,根目录将是:
%localappdata%\lxss
请注意,根目录在Windows资源管理器中从
%localappdata%
目录可能不可见。无论如何,只要在资源管理器的“地址栏”中键入它即可访问它。评论
我的机器找不到:“ C:\ Users \ {用户} \ AppData \ Local \ Lxss \ {用户名}”或“%localappdata%\ Lxss \ home \ {用户名}”,但是“ C:\ Users \ {用户} \ AppData \ Local \ lxss \ {用户名}”起作用。即使用“ lxss”而不是“ Lxss”
– Joe Codeswell user601770
16年8月17日在15:52
我的系统具有rootfs子目录,但是rootfs / home为空,而./home具有我的用户帐户和文件。似乎最安全的方法是直接转到%localappdata%\ lxss,然后从那里浏览以查看具有哪种布局,再直接浏览到该地址可以避免lxss目录被隐藏的问题。
– jla
16年1月1日在16:07
@ JoeCodeswelluser601770这很奇怪。 Windows文件系统通常不区分大小写。我可以输入%localappdata%\ Lxss或%localappdata%\ lxss,然后都转到%HOMEPATH%\ AppData \ Local \ lxss
– jla
16年1月1日,16:10
请注意,即使启用了隐藏文件夹视图,此文件夹(lxss)也不会出现在Windows资源管理器的AppData \ Local文件夹列表中。我必须手动将文件夹lxss添加到资源管理器栏中才能在此处找到文件。编辑文件夹“ URL”到那里
–科林D
16 Dec 20 '20:52
或者,您可以转到桌面,右键单击“新建->快捷方式”,然后粘贴一个路径,例如C:\ Users \ yourname \ AppData \ Local \ lxss \ home \ yourname
–科林D
16 Dec 20'在20:57
#3 楼
如果您从MS Market安装Linux:Windows商店中的免费Ubuntu
Windows商店中的免费Open Suse
它们将发行版放在以下位置:
$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
默认发行版定义为:
bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}
Linux根更深:
c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs
PS。我使用Cygwin探索注册表项。
如果将PowerShell用于同一目标,则命令为:
# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):
$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)
# which will have a value like:
echo $DEFAULT_LXSS_ID
{bde539d6-0c87-4e12-9599-1dcd623fbf07}
# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)
Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState
PPS。 https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/
评论
注意到“ [您使用Cygwin探索注册表项”,这使它变得更有用了(对于更多种不同的情况),这真是太好了。
–bballdave025
9月29日18:26
#4 楼
唯一对我有用的是%localappdata%\lxss\home\{username}
,其中{username}
是您在安装过程中提供的BASH用户名。由于某些原因,在显示隐藏文件夹的lxss后,它拒绝出现在C:\Users\WINDOWS-USER\AppData\Local\
中,并且也没有给出带有Windows和BASH用户名的完整C:\
路径。请创建一个桌面快捷方式以解决问题。
评论
哇好提示,有同样的问题
–尼古拉斯·莫默斯
18年2月19日在12:08
#5 楼
您可以通过在位置栏中键入bash
从打开的文件夹的“文件资源管理器”窗口中快速打开Bash。就足够了。
还可以添加上下文菜单项。我个人不建议不要使用它,因为在上下文菜单中添加快捷方式会占用更多RAM。
https://www.howtogeek.com/270810/how-to-quickly-launch- a-bash-shell-from-windows-10s-file-explorer /
评论
对我不起作用。它打开命令提示符并启动bash。
–blablatros
17年5月28日在19:38
@blablatros是的,但是在浏览器栏bash中编写并按Enter时,在女巫中bash的文件夹中打开了资源管理器。尝试在“我的文档”文件夹中打开Windows资源管理器文件夹,并在位置栏中输入bash,它将已经在该文件夹中打开ubuntu bash :)
–袋鼠
17年6月17日在2:24
@Kangarooo:我想通过Windows 10 gui访问文件,反之亦然。在上面的答案中,我发现了如何通过Windows 10文件浏览器找到bash目录,因此我着手将一些文件从外部硬盘驱动器复制到该目录中。但是,当我打开bash终端并按ls -a时,它没有显示我添加的文件。 Bash无法识别我通过Windows文件资源管理器放入的文件,对我而言,这完全击败了在Windows上安装Bash的目的。
– thinksinbinary
17-6-25在14:00
#6 楼
对于正在寻找映像位置的用户:C:\ Users \ [用户名] \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ ext4.vhdx
评论
请注意,我们(WSL团队)强烈建议您不要将其存入Linux发行数据文件夹中。如果这样做,极有可能发生数据丢失和/或损坏的情况,我们正在努力改善这种互操作方案,并将在我们的博客上宣布任何进展:blogs.msdn.microsoft.com/commandline@RichTurner我发现有一个非常具体的(令人讨厌的)原因-公司策略反复用错误的权限标记.ssh文件夹意味着需要将结构标记为公司脚本的“禁止访问”。但总的来说-我会同意你的看法。
尽管它看起来像是具有最新更新的盒子,但这种情况不再发生。
@DannyStaple如果您需要从Windows更改Linux发行版中文件/文件夹的权限,请使用wsl.exe,例如wsl chmod 600〜/ .ssh / id *-不要通过Windows文件系统将文件复制到这些文件夹中。
@mehrdad WSL实现了一个P9文件服务器,就像任何P9文件服务器一样,从发行版的文件系统公开/编组文件。这样,就无需封送NTFS元数据。请观看Build 2919上的Craig Loewen和Ben Hillis的会议,以了解更多信息