问题描述
我希望能够像操作系统一样从控制台打开文件。
例如应该用evince
打开.pdf
文件,或者打开pdf文件的默认应用程序。所有其他的事情也应该工作。图像 – > eog
,文本文件 – > gedit
等。
我希望有一个解决方案,这将是非常实际的。
最佳解决思路
xdg-open — opens a file or URL in the user’s preferred application
但是如果你想从终端改变首选的应用程序呢?
尝试这个
您可以使用xdg-mime程序首先检查哪个是当前将打开文件的默认应用程序,然后您可以将其切换到您想要的任何应用程序。
$ xdg-mime query default application/pdf
AdobeReader.desktop
$ xdg-mime default evince.desktop application/pdf
$ xdg-mime query default application/pdf
evince.desktop
现在正如jokerdino所提到的,您可以使用xdg-open来打开您的首选应用程序的文件:
$ xdg-open file.pdf
次佳解决思路
-
gnome-open用Gnome的默认应用程序打开一个文件
-
kde-open使用KDE的默认应用程序打开文件
-
xdg-open用X的默认应用程序打开一个文件
第三种解决思路
那么如果你的意思是你可以打开一切的命令,它会自动选择,有gnome-open
如果你想打开.pdf或任何文件,只需键入:
gnome-open blah.pdf
有这种作品有xdg-open
。它做什么:它只是查看这种类型的文件的默认应用程序,并运行该应用程序。
In manual of xdg-open
xdg-open – opens a file or URL in the user’s preferred application
同样来自here
xdg-open is part of the xdg-utils package available in [extra]. xdg-open is for use inside a desktop session only. It is not recommended to use xdg-open as root.
并确保更改”default”应用程序,您将需要xdg-mime示例更改默认PDF查看器:
$ xdg-mime default xpdf.desktop application/pdf
来源:https://wiki.archlinux.org/index.php/Xdg-open
第四种思路
添加到现有的点。
我发现这个命令非常重要,所以我在~/.bashrc
中有一个别名:
alias go='xdg-open'
我也发现命令xdg-open .
或别名go .
真的很有用。该时间段表示工作目录,并在工作目录中打开Nautilus。因此,如果您需要暂时利用Nautilus中的功能,例如在备用程序中打开文件,删除具有奇怪名称的文件,选择奇怪的文件组合等,则可以通过相对简单的方式实现。
第五种思路
您可以使用xdg-open,它应该使用默认程序打开一个文件:
xdg-open somename.pdf
将使用默认的PDF阅读器打开某个名称。
或者,通常,您可以使用程序名称,然后使用您希望打开的文件的名称(或路径和名称)
evince somename.pdf
将在evince中打开某个名字。
如果您希望在使用该文件时能够继续使用该终端,则可以添加&在命令结束时,它将在后台执行,您可以继续在终端中绑定命令。否则,在程序关闭之前,您不能使用终端。
xdg-open somename.pdf &
第六种思路
例如,您可以使用xdg-open
打开您的桌面环境知道的任何文件类型
xdg-open somefile.pdf
第七种思路
很有用!我为此添加了一点,并创建了一个shell脚本”open”。实质上,如果没有参数要打开,或者打开的参数是目录,则使用nautilus,否则使用xdg-open命令:
bash版本:
#! /bin/bash
#
# this emulates the mac 'open' command, which figures out fromthe
# file how to 'display' a file
#
# gnome-open kde-open xdg-open
if [ $* > 0 ] ; then
if [ -d $1 ] ; then
nautilus $1
else
xdg-open $*
fi
else
nautilus .
fi
csh版本:
#! /bin/csh -f
#
# this emulates the mac 'open' command, which figures out fromthe
# file how to 'display' a file
#
# gnome-open kde-open xdg-open
if ($#argv > 0) then
if (-d $1) then
nautilus $1
else
xdg-open $*
endif
else
nautilus .
endif