173

In Nautilus, when you double click a file, it will open it with the default application associated with the file's extension. For instance, .html files will open in a web browser and .pdf will be opened with Document Viewer. Is there a way to reproduce the same behavior from within the command line (i.e. open path/filename)? I'm asking because I like to browse my file-system from the command line but sometimes don't remember which app. opens what.

  • There is a similar question regarding launching default browser from the command line: askubuntu.com/questions/8252/… – kounryusui Nov 29 '10 at 13:42
  • That's a brilliant question indeed! In almost 4 years of my bashing I hadn't thought about it :P – John Strood Jun 7 '16 at 9:40
225

I think xdg-open is the command you are looking for.

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.

eg: xdg-open index.php

This will open index.php in gedit(if you are using gnome).

If you want to open a url in browser

xdg-open http://google.com

this will open google.com in your default browser.


xdg-open is a wrapper script - it will use the desktop environment's tool (gio open, gvfs-open, kde-open, gnome-open, dde-open, exo-open, and a host of other such tools). It is also installed by default, and very likely to work on past, current and future versions (on the other hand, gvfs-open and gnome-open have been deprecated, and may be unavailable in future releases).

  • 3
    wish I searched on google for this earlier – JohnMerlino Sep 25 '13 at 23:55
  • 2
    On Gnome: gnome-open and on KDE: kde-open works. – Farahmand Feb 21 '14 at 16:01
  • xde-open worked on xfce as well. – Seven Dec 13 '16 at 4:30
  • 5
    easy way to shorten this command is to use an alias. alias o='xdg-open'. Put this inside your .bash_aliases file to make the alias load on startup each time. nano ~/.bash_aliases and then paste inside nano using CTRL+SHIFT+V. – anon58192932 Sep 21 '17 at 15:44
46

xdg-open and gnome-open

xdg-open is the most universal way (work also on KDE)

  • 4
    This answer was posted earlier. – Kadir Jan 15 '15 at 11:44
12

If you want to:

  • make an alias for this command (e.g. open)
  • hide output from the command
  • continue using this terminal after

You can use this .bashrc function:

function open () {
  xdg-open "$@">/dev/null 2>&1
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.