我正在使用来自 Windows Store 的 Ubuntu。
当我使用“find”之类的终端命令时,我看到它还列出了来自我的 Windows 驱动器的文件。
因此 Ubuntu 可以访问 Windows 文件系统,这非常好。
现在我想做相反的事情:我想从 Windows 查看 Ubuntu 系统的文件和文件夹。
例如,我想从资源管理器查看“etc”文件夹。
那可能吗?
答案1
- 免责声明:以下步骤已简化,以便普通用户能够理解。所提及的文章仅供爱好者参考。其他人可以跳过这些文章。
普通的 Windows 可执行文件 (Win32) 最好将用户配置/日志文件存储在%LocalAppData%
文件夹中C:\Users\%USERNAME%\AppData\Local
。但在 Windows 通用平台 (UWP) 中,该路径被重定向到另一个C:\Users\%USERNAME%\AppData\Local\Packages\package_name
。package_name
特定于相关 UWP 包。使用这种类型的路径重定向,用户配置/日志文件会在卸载时自动删除。请按照此文章了解更多详情。
以下是路径结构:
安装文件夹:
- 普通应用程序:
C:\Program Files\
- UWP 应用:
C:\Program Files\WindowsApps\<Publisher Name>.<App Name>_<Version Code>_<Random String>
- 普通应用程序:
本地 AppData 文件夹:
- 普通应用程序:
C:\Users\<User Name>\AppData
- UWP 应用:
C:\Users\<User Name>\AppData\Local\Packages\<Publisher Name>.<App Name>_<Random String>
- 普通应用程序:
现在将以下示例与上述路径结构进行比较。Windows Store 中的 Ubuntu 18.04 安装在:
C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2018.427.0_x64__79rhkp1fndgsc
重定向的本地 AppData 将是:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState
我编写了一个 PowerShell 脚本,可以使用它/
在文件资源管理器中打开该 Linux rootfs(即)文件夹。它使用获取 AppxPackagecmdlet 获取 Appx 包名称。将以下行复制到记事本中,并使用 .ps1 扩展名(而不是 .txt)保存。然后在 PowerShell 中运行它。
$DistroName=Read-Host "Enter Distribution Name"
$pacakgeName = (Get-AppxPackage *$DistroName*).PackageFamilyName
$appData = [System.Environment]::ExpandEnvironmentVariables("%LocalAppData%")
$rootfs = $appData + "\Packages\" + $pacakgeName + "\LocalState\rootfs"
echo $rootfs
Invoke-Item $rootfs
Read-Host -Prompt "Press any key to continue..."