如何从命令行使用默认应用程序打开文件?


179

在Nautilus中,当您双击一个文件时,它将使用与该文件的扩展名关联的默认应用程序将其打开。例如,.html文件将在网络浏览器中打开,.pdf将用Document Viewer打开。有没有办法从命令行(即open path/filename)内重现相同的行为?我之所以问是因为我喜欢从命令行浏览我的文件系统,但有时不记得是哪个应用程序。打开什么。


有关于在命令行启动默认浏览器类似的问题:askubuntu.com/questions/8252/...
kounryusui

确实,这是一个绝妙的问题!在我学习了将近4年的bash时间里,我没有想到过:P
John Strood

Answers:


233

我认为这xdg-open是您要查找的命令。

NAME
       xdg-open - opens a file or URL in the user's preferred application

SYNOPSIS
       xdg-open {file | URL}

       xdg-open {--help | --manual | --version}

DESCRIPTION
       xdg-open opens a file or URL in the user's preferred application. If a
       URL is provided the URL will be opened in the user's preferred web
       browser. If a file is provided the file will be opened in the preferred
       application for files of that type. xdg-open supports file, ftp, http
       and https URLs.

例如: xdg-open index.php

这将在gedit中打开index.php(如果使用的是gnome)。

如果要在浏览器中打开网址

xdg-open http://google.com

这将在您的默认浏览器中打开google.com。


xdg-open是一个包装脚本-它将使用桌面环境的工具(gio opengvfs-openkde-opengnome-opendde-openexo-open,和其他此类工具的主机)。它也被默认安装的,并且很可能在过去,现在和以后的版本(在另一方面,gvfs-open并且gnome-open已被弃用,并且可能在以后的版本中不可用)。


2
在Gnome上:gnome-open和在KDE上:kde-open有效。
Farahmand 2014年

xde-open也在xfce上工作。
2016年

5
缩短此命令的简单方法是使用别名。alias o='xdg-open'。将此.bash_aliases文件放入您的文件中,以便每次启动时都加载别名。nano ~/.bash_aliases然后nano使用粘贴到内部CTRL+SHIFT+V
anon58192932 '21

46

xdg-opengnome-open

xdg-open 是最通用的方式(也在KDE上工作)


15

如果你想:

  • 为此命令命名(例如open
  • 隐藏命令的输出
  • 之后继续使用此终端

您可以使用此.bashrc函数

function open () {
  xdg-open "$@">/dev/null 2>&1
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.