从 Windows 访问 Ubuntu 数据(例如“/etc”)

从 Windows 访问 Ubuntu 数据(例如“/etc”)

我正在使用来自 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_namepackage_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..."

相关内容