#local-file #browser #file-path #open-file #html #linux #win10

bin+lib wsl_open_browser

在WSL2中打开Win10中的html文件浏览器。本地文件路径在Linux和Win10记法之间转换。

1个稳定版本

2021.823.702 2021年8月23日
2021.822.842 2021年8月22日

28#open-file

MIT 许可证

16KB

wsl_open_browser

在WSL2中打开Win10中的html文件浏览器。本地文件路径在Linux和Win10记法之间转换。
仓库;版本:2021.823.702 日期:2021-08-23 作者:Luciano Bestia

Lines in Rust code Lines in Doc comments Lines in Comments Lines in examples Lines in tests

crates.io Documentation crev reviews Lib.rs Licence Rust

试用

从crates.io安装并添加2个符号链接和一个环境变量

cargo install wsl_open_browser
sudo ln -sf "/mnt/c/Program Files/Mozilla Firefox/firefox.exe" /usr/bin/browser_in_win
export BROWSER='/usr/bin/wsl_open_browser'
# I like to use the short command `www` to open a browser
ln -sf "/usr/bin/wsl_open_browser" www

# go to a directory that contains a subdirectory with index.html
cd ~/rustprojects/wsl_open_browser
www docs/index.html
# or
www docs
# or go inside the directory that contains index.html
cd docs
www .
# or simply
www
# if you want to open an URL
www rust-lang.org

恭喜!您已成功从WSL2中打开Windows浏览器。

动机

在WSL2中,我想在浏览器中打开一个html文件。但浏览器在Win10中。
这对于Rust的文档非常有用

cargo doc --open

或者简单地从bash中打开文件到浏览器

www index.html

在Win10浏览器中打开URL(第一次尝试)

我准备了一个指向firefox可执行文件的符号链接。

ln -s "/mnt/c/Program Files/Mozilla Firefox/firefox.exe" /usr/bin/browser_in_win
# now I can open a page like this
browser_in_win http://github.com
# I want to open it with xdg-open
# xdg-open is the "Open any file" for linux
export BROWSER='/usr/bin/browser_in_win'
# now I can use
xdg-open https://rust-lang.net.cn

这对于URL来说效果很好,但不适用于本地文件,因为Linux和Windows以不同的路径看到相同的文件。
命令 ln -sf 是永久和持久的。它创建一个永远存在的文件。
export BROWSER= 并非持久。您需要将此命令添加到 ~/.bashrc,以便在每次启动终端时运行。

在Win10浏览器中打开本地文件

例如
Linux: /home/luciano/index.html
Win10: \\wsl$\Debian\home\luciano\index.html
OR
Linux: /mnt/c/Users/Luciano/Downloads\index.html
Win10: c:\Users\Luciano\Downloads\index.html

我需要一种方法在调用浏览器之前转换路径。
让我们做一个Rust CLI。

开发

这是一个简单的二进制文件。为了良好的习惯,我将库和二进制文件分开。
使用 cargo auto 来运行自动化任务:构建、发布、文档、复制到usr_bin、...
cargo auto copy_to_usr_bin 之后,我们现在可以这样打开浏览器

wsl_open_browser https://rust-lang.net.cn
wsl_open_browser /home/luciano/index.html
wsl_open_browser /mnt/c/Users/Luciano/Downloads/index.html
wsl_open_browser docs/index.html

使用xdg-open打开

但我想要使用xdg-open。
xdg-open是Linux的“打开任何文件”。
为此,我需要设置环境变量BROWSER。
为了使其持久,将此行复制到 ~/.bashrc

export BROWSER='/usr/bin/wsl_open_browser'

最后,我们可以这样打开浏览器

xdg-open https://rust-lang.net.cn
xdg-open /home/luciano/index.html
xdg-open /mnt/c/Users/Luciano/Downloads/index.html

并且Rust文档工作得很好

cargo doc --open

简单来说:www docswww .

我还是不满意。
我想从Debian bash终端使用这种简单语法打开浏览器

www docs
www .
www rust-lang.org

我将创建另一个别名

ln -sf "/usr/bin/wsl_open_browser" www

命令 ln -sf 是永久和持久的。它创建一个永远存在的文件。

依赖项

~17KB