Skip to content
This repository has been archived by the owner on Dec 27, 2022. It is now read-only.

pywslpath 工具的使用

riag edited this page May 27, 2019 · 6 revisions

pywslpath 工具是用于把 Windows 和 WSL Linux 的文件路径互相转换,具体使用看 这里

需要注意的是,pywslpath 工具必须定义 WSL_DISTRO_ROOTFS_DIR 环境变量,否则很多功能都不能使用, 建议使用 wsltty-launcher 来启动 WSL Linux,因为 wsltty-launcher 会自动设置了这个环境变量

manjaro-linux-for-wsl 基于这个工具提供了一些有用的 shell 函数,方便大家使用

update-winenv 函数

该函数会生成 ~/.winenv.sh 文件,该文件里定义了 windows 下常见的路径,方便在 WSL Linux cd 到 windows 目录, 如果是在 zsh 里运行该函数,还会覆盖 ~/.zprofile 文件,把常见的 windows 路径定义一个别名

这是我的 ~/.winenv.sh

 export WINHOME="/mnt/c/Users/riag"
 export APPDATA="/mnt/c/Users/riag/AppData/Roaming"
 export LOCALAPPDATA="/mnt/c/Users/riag/AppData/Local"
 export WINDESKTOP="/mnt/c/Users/riag/Desktop"
 export PROGRAMFILES="/mnt/c/Program Files"
 export WINTEMP="/mnt/c/Users/riag/AppData/Roaming/Microsoft/Windows/Templates"
 export WINSYSDIR="/mnt/c/WINDOWS/system32"
 export WINDOWDIR="/mnt/c/WINDOWS"
 export PROGRAMDATA="/mnt/c/ProgramData"

我的 ~/.zprofile 文件内容

  hash -d windesktop=$WINDESKTOP
  hash -d programfiles=$PROGRAMFILES
  hash -d wintemp=$WINTEMP
  hash -d winsysdir=$WINSYSDIR
  hash -d windowdir=$WINDOWDIR
  hash -d programdata=$PROGRAMDATA

wcd 函数

支持传入 windows 目录路径进行 cd , windows 目录路径要使用双引号,例如

 wcd "C:\Program Files"

wopen 函数

支持传入 WSL Linux 目录路径或者文件路径,然后使用 windows 默认程序打开,这里其实就是调用 powershell start 来打开

如传入目录路径,就是使用 windows 的文件资源管理工具打开

wopen-wsl-home 函数

该函数需要定义 WSL_DISTRO_ROOTFS_DIR 环境变量,直接使用 wopen 函数 WSL_DISTRO_ROOTFS_DIR 定义的路径

vc/vcn 函数

调用 Virtual Studio Code 工具打开文件或者目录, 该函数是通过 find-vscode 函数来获取 Virtual Studio Code 工具的路径

  • vc 函数是在 Virtual Studio Code 的最后一个窗口打开文件或者目录
  • vcn 函数是让 Virtual Studio Code 在一个新的窗口打开文件或者目录

find-vscode 查找规则

  • 如果判断是否定义了 VSCODE_BIN 环境变量,如果定义了,就使用 VSCODE_BIN 环境变量
  • 如果能通过 which code 命令找到 code 的路径,就直接使用这个路径
  • 判断 $LOCALAPPDATA/Programs/Microsoft VS Code/bin/code 这个路径是否有存在,如果存在就返回这个路径
  • 判断 $LOCALAPPDATA/Programs/Microsoft VS Code Insiders/bin/code 这个路径是否存在,如果存在就返回这个路径
Clone this wiki locally