如何在 WSL 中从 Linux 访问 Windows 文件?

Pal*_*oma 6 command-line directory windows-subsystem-for-linux

我开始学习如何在 WSL (Windows) 上使用 Ubuntu 终端。

从课程一开始,它就说如果您使用该ls命令,它应该显示您的“主”目录,但我的目录是这样的:

(base) paloma@DESKTOP-ISCC0ON:~$ ls
Anaconda3-2021.11-Linux-x86_64.sh  anaconda3

(base) paloma@DESKTOP-ISCC0ON:~$
Run Code Online (Sandbox Code Playgroud)

如果我尝试更改目录,会发生类似的情况:

(base) paloma@DESKTOP-ISCC0ON:~$ ls
Anaconda3-2021.11-Linux-x86_64.sh  anaconda3

(base) paloma@DESKTOP-ISCC0ON:~$ cd Documents
-bash: cd: Documents: No such file or directory

(base) paloma@DESKTOP-ISCC0ON:~$
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么会发生这种情况以及我能做什么吗?我是一个完全的新手。

Not*_*1ds 6

@Tooster 的答案中的所有内容都已更正,但让我更直接地解决您的主要问题:

(base) paloma@DESKTOP-ISCC0ON:~$ cd Documents
-bash: cd: Documents: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么会发生这种情况以及我能做什么吗?

您似乎想知道为什么这不会将您带到WindowsDocuments主目录中的文件夹。

重要的是要了解 Ubuntu/WSL 中的主目录与 Windows 主目录不同,也不应该相同。您的 Ubuntu 主目录位于 WSL 提供的虚拟 SSD 中。这个虚拟SSD提供了Linux兼容文件系统,而您的 Windows 驱动器格式化为 NTFS,不会具有 100% 兼容性。

正如 @Tooster 所提到的, WSL确实提供了一种访问 Windows 文件(包括您的主目录)的方法。

从 Ubuntu 内部:

cd /mnt/c/Users/<your_Windows_username>
ls
Run Code Online (Sandbox Code Playgroud)

这应该会显示 Windows 配置文件(也称为主目录)文件夹中的所有文件和目录。

也许还可以阅读作为附加背景 - 我对WSL 位于我的计算机上的位置的回答?


Too*_*ter 2

首先尝试使用隔离代码块格式格式化代码并从终端输出。

现在讲功绩。

  • 当前工作目录是您所在的目录。您的主目录(通常用 表示~)通常位于/home/<username>/
  • ls- 命令列出当前目录中的文件
  • ls [arguments...]- 此命令列出作为参数提供的目录内的文件
  • cd [argument]- 更改目录命令。不带参数使用它会将您带到主目录
  • /是linux中的根目录,绝对路径以它开头
  • .是当前目录,如果路径以它开头./something或不以它开头something,则假定当前目录(路径相对于当前位置)
  • ..是父目录。

根据(base)提示符和上面文件的名称,我会说您正在WSL(Linux 的 Windows 子系统)上使用conda环境。你为什么用它不关我的事,但你在第一次学习linux和WSL时似乎跳过了一些步骤。尝试从https://linuxjourney.com/开始(尤其是命令行部分和文件系统部分)。然后了解linux和windows结构的差异。


@编辑因为我只注意到你在 Windows 上使用 Linux

因为linux 和windows 的文件系统有点不同,所以当您在windows 上启动linux 时,会为您创建一个虚拟文件系统。要从 Linux 访问 Windows 文件,您必须访问/mnt/<drive>/<...windows files>(注意/开头的 - 这是绝对路径)

Linux 的结构是一棵以 为根的树/,外部文件系统通常安装在/mnt(请阅读hier(7)了解更多信息)。Windows 的文件系统由“驱动器”组成——以 等为根的单棵树C:/D:/因此这两个系统自然有不同的机制来访问彼此的文件。

了解更多信息,请访问https://ling123labs.com/posts/WSL-files-in-Windows-and-vice-versa/