当前位置: 首页>>技术问答>>正文


我怎样才能在我的终端打开一个文件,就像 nautilus 一样呢?

,

问题描述

我希望能够像操作系统一样从控制台打开文件。

例如应该用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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/851.html,未经允许,请勿转载。