欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WSL与WIN怎么互通有无?

程序员文章站 2022-06-20 10:42:21
...

今天稍微有空,开始尝试搭建个人博客,开发环境自然是python3.6,wsl for ubuntu,vim和django。然而今天情况有些特殊,在学习过程中遇到了需要拷贝开源的js文件的问题,而在vim中成段拷贝的话担心会遇到格式不对的问题,可能会带来不必要的麻烦,因此用到了VS Code这个编辑器。
可问题在于VS Code作为WIN系统的编辑器,虽然拷贝操作很简单,但是生成的文件肯定是存在于WIN系统下的,那么怎么样把VS Code编辑生成的文件转移到相应的linux子系统文件夹下呢。

STEP.1

很明显,既然WSL是作为windows下的linux子系统存在的,那么必然wsl也会有类似的文件系统可以在window内直接操作,尽管微软爸爸一直强调不推荐在windows外部环境下对linux子系统进行操作,但是特殊情况特殊原因吗,让我们找一下linux子系统到底藏在哪里?

 

WSL与WIN怎么互通有无?

ubuntu子系统路径.png

果然藏得很深。。。

WSL与WIN怎么互通有无?

image.png


直到这儿,我们才看到了自己的用户界面,那么在这里面直接拷贝文件夹或者文件可不可以被读到呢?
答案是不可以的。原理很简单,想必大家对Linux有过了解的都听说过这么一句话,“各个组件和设备在Linux下面都是一个文件”,或许你不理解这句话,但是有个概念你肯定已经悟到了,那就是linux的文件系统和windows的肯定大相径庭,至少在图形操作界面,让他们直接“互通有无”是不可能的。
展开来说,如果你使用ls -al查看linux文件属性,会发现如下字符:

 

drwxr-xr-x 1 root root 4096 May  8 14:33 article

在这里我们只观察前面的10个字符,可见出去第一个“d”是代表文件或者文件夹的,剩下九个字符依次代表了三组可用权限,分别针对“文件拥有者具备的权限”,“用户组账号拥有的权限”,“其他账号的权限”,“rwx”分别代表了“可读,可写,可执行”。
而如果我们对WIN环境下的文件和文件夹查看:

 

WSL与WIN怎么互通有无?

WIN下文件属性.png

 

因此,如果我们想对其进行操作,必须要把该文件夹的权限属性设置为Linux可读取的。

STEP2

其实解决方法很简答,在Linux子系统中同样可以访问主机的文件或者文件夹,这时如果我们使用“ls -l”查看文件权限,可以看到windows下文件或文件夹也可以被linux读取。

cd /mnt/c/  #访问主机中的C盘符  

 

WSL与WIN怎么互通有无?

linux子系统访问主机

 

那么这时我们只需要使用熟悉的mv命令将目标文件夹转移到我们需要的位置即可了。

嗯,水了一篇,我知道,继续愉快的搭博客!