Ryan

在WSL中使用资源管理器打开当前路径
在WSL终端中是可以使用explorer.exe直接打开资源管理器的。而资源管理器可以直接接收路径作为参数。理论上...
扫描右侧二维码阅读全文
01
2019/05

在WSL中使用资源管理器打开当前路径

在WSL终端中是可以使用explorer.exe直接打开资源管理器的。而资源管理器可以直接接收路径作为参数。理论上,使用下面的命令就可以在资源管理器中打开当前路径。

# explorer.exe .

但是你会发现在根目录(/)下使用这个命令无法打开根路径,这是因为这是WSL路径,非Windows文件系统的路径。
但是实际上这路径在资源管理器中也可以看见的。所以可以使用function的方式hack一下,把下面的function添加到/etc/profile重新打开终端后就可以使用explorer命令打开当前终端。

function explorer() {
    CURR_PATH=$(pwd)
    if [[ ! $(echo ${CURR_PATH} | grep "^/mnt/") ]]; then
        CURR_PATH=$(echo ${CURR_PATH} | sed -s 's|/|\\|g')
        echo "Open in Explorer: ${WSL_HOME}${CURR_PATH}"
        explorer.exe "${WSL_HOME}${CURR_PATH}"
    else
        echo "Open in Explorer: ${CURR_PATH}"
        explorer.exe .
    fi
}

然后我准备打开/bin目录的时候发现提示打开方式
show-in-explorer-for-wsl-how-to-open-this-file.png
这是因为这是linux的软连接,Windows不识别,使用readlink读出实际路径即可

function explorer() {
    CURR_PATH=$(pwd)
    if [[ ! $(echo ${CURR_PATH} | grep "^/mnt/") ]]; then
        # Hack symlink
        REAL_PATH="$(readlink ${CURR_PATH})"
        [[ ! -z ${REAL_PATH} ]] && CURR_PATH="\${REAL_PATH}"
        CURR_PATH=$(echo ${CURR_PATH} | sed -s 's|/|\\|g')
        echo "Open in Explorer: ${WSL_HOME}${CURR_PATH}"
        explorer.exe "${WSL_HOME}${CURR_PATH}"
    else
        echo "Open in Explorer: ${CURR_PATH}"
        explorer.exe .
    fi
}
搬瓦工年付$187机房套餐补货了,电信联通优化,512M内存/500G流量/1G带宽,建站稳定,优惠码:BWH1ZBPVK,【点击购买】!
搬瓦工年付$28CN2高速线路,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快,建站稳定,优惠码同上,【点击购买】!
Last modification:May 21st, 2019 at 03:19 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment