在特定应用程序中从终端打开文件

Spa*_*awk 5 command-line default-programs xdg-open

xdg-open在终端中使用了很多;这将在默认应用程序中打开一个文件。但是,有时我想在不同的(非默认)应用程序中打开文件。有没有办法从终端实现这一目标?

(显然,某些应用程序可以将文件作为参数,例如vlc /path/to/movie.mp3,但我正在寻找一种适用于所有情况的更通用的方法,类似于xdg-open。)

xdg-open-like 命令的一个优点是可以在打开文件/应用程序后关闭终端窗口。但是,如果我使用(例如)vlc /path/to/movie.mp3 &,那么我需要保持终端窗口打开。

cha*_*kes 6

xdg-open当然,它旨在使用默认应用程序。要使用非默认应用程序,我认为您有三个选择。

1)programname filename像往常一样输入。

2) 通过在 Nautilus 中右键单击并使用open with来在终端外部执行此操作。

3) 在终端中使用您自己的脚本。假设您有一个相当短的默认程序列表,您可能想要从中进行选择。

#!/bin/bash
read filename
myvar=$(zenity --list --text="Chose a non-default program" --column="Programs" firefox gedit)
$myvar filename &
Run Code Online (Sandbox Code Playgroud)

这将让您指定文件名,然后选择打开它的程序。这是最小的实现,因此可能需要一些额外的工作。但是试试吧。

这种方法可能没有很多好处,但它使您可以控制流程和选项,以满足您的任何需求。