在wsl中转换unix和windows格式的路径

pywslpath的Python项目详细描述


pywslpath

windows 和 WSL 的路径互相转换,以及获取 windows 下的系统目录

安装

使用 setuptools 来安装

python3 setup.py install

或者使用 pip 来安装

pip3 install pywslpath

用法

因为该脚本支持把 WSL Linux 下的所有路径转成 Windows, 所以要设置 WSL_ROOTFS_DIR 环境变量,指向当前 WSL Linux 安装的路径

pywslpath [OPTIONS] [PATH]

参数

-w               :   输出 windows 格式的路径
-d/--doubledash-path   :   双 `\`, 只有使用 -w 参数才有效,
                      这个参数一般在 linux 的 shell 里使用
-u               :   输出 linux 格式的路径
--desktop        :  获取 windows 的 DESKTOP 路径
--appdata        :  获取 windows 的 ApplicationData 路径
--localappdata   : 获取 windows 的 LocalApplicationData 路径
--temp           : 获取 windows 的 TEMP 路径
--sysdir         : 获取 windows 的 System 路径
--windir         : 获取 windows 的 Windows 路径
--start-menu     : 获取 windows 的 StartMenu 路径
--startup        : 获取 windows 的 Startup 路径
--home           : 获取 windows 的当前用户路径
--program-files  : 获取 windows 的 ProgramFiles 路径

例子

pywslpath -w -d /mnt/c/

pywslpath -w -d test

pywslpath -w -d --localappdata

pywslpath -u c:/Windows
pywslpath -u c:\\Windows
pywslpath -u "c:\Windows"

使用场景

支持使用 windows 路径进行 cd

在 zsh/bash 里定义以下函数

function wd(){
	p=`pywslpath -u $1`
	cd $p
}

wd 函数支持使用 windows 路径进行 cd

打开文件

可以在 WSL Linux 下调用 windows 下 的 VSCode/Atom 编辑器打开文件, 在 zsh/bash 里定义以下函数

VSCODE_BIN='code'

function vc(){
	p=`pywslpath -w -d $1`
	$VSCODE_BIN -r $p
}
function vcn(){
	p=`pywslpath -w -d $1`
	$VSCODE_BIN -n $p
}


win_local_appdata_winpath=`pywslpath -w -d --localappdata`
ATOM_BIN_WINPATH="$win_local_appdata_winpath\\atom\\atom.exe"
function ac(){
	p=`pywslpath -w -d $1`
	powershell.exe "Start-Process -FilePath \"$ATOM_BIN_WINPATH\" -ArgumentList \"$p\""
}

function acn(){
	p=`pywslpath -w -d $1`
	powershell.exe "Start-Process -FilePath \"$ATOM_BIN_WINPATH\" -ArgumentList \"-n\", \"$p\""
}

其他

使用 windows 默认的软件打开目录或者文件, 在 zsh/bash 里定义以下函数

function open(){
	if [ "$1" = "--help" ];then
		pywslpath $1
		return
	fi
	p=`pywslpath -w -d $1`
	powershell.exe start "\"$p\""
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android使用两个后台服务错误   解压缩HTTPInputStream时,java GZIPInputStream过早关闭   javax和javax的区别是什么。网ssl。密钥库和服务器。ssl。为SpringBoot应用程序指定密钥库时的密钥库属性   java生成两个JPanel,而我只需要一个   java深度链接从play store安装应用程序时获取数据   java 安卓应用程序在退出时未正确释放蓝牙   java正确使用setCellValueFactory   java开放JdbcTemplate连接处于只读模式?   使用Spring MVC创建服务时发生java错误   JavaFX获取安装在计算机中的特定应用程序的版本   SecureRandom的安全问题:PRNG在java 1.5中不一致   windows我可以创建一个独立的。带Inno设置的Java应用程序的exe安装程序?   如何使用JavaServlet下载csv文件?   java从生成的缓冲图像中添加图像作为jasper中的数据记录?   java日期和时间解析