55

Coming from Mac OS X, you can type:

$ open yourfilehere.txt

and your file will open just as if you had opened it from Finder.


On Windows, one can type:

> start yourfilehere.txt

and it will open just as if you had opened it from Explorer.


On Ubuntu, I'd like to be able to open files in the same manner in GNOME. What's the command?

2
  • 1
    In little related I found this little gem to open Finder in a certain path (not current path necessarily): open -a Finder . or open -a Finder /your/path/here Feb 10, 2012 at 19:56
  • I just saw that On Windows, this is the start program. On OS X, this is the open program. On Ubuntu Linux, this is the see program. in book automate-the-boring-stuff-with-python, but I didn't get any info about see command from Google.
    – CodyChan
    Sep 20, 2017 at 8:39

5 Answers 5

51

xdg-open is what you're looking for.

You might like this snippet I put in my .bashrc files so that whether I'm using cygwin on Windows, Linux, or OSX, I can use either the start or the open commands and they work great:

case "$OSTYPE" in
   cygwin*)
      alias open="cmd /c start"
      ;;
   linux*)
      alias start="xdg-open"
      alias open="xdg-open"
      ;;
   darwin*)
      alias start="open"
      ;;
esac

Good comments, xdg-open is indeed a better option than gnome-open as explained below. I updated my personal scripts a while ago, but forgot to update this answer.

WARNING: This will override the functionality of both openvt (virtual terminal) and start from init.

7
  • 1
    That BASH script is a great idea.
    – jweede
    Sep 10, 2009 at 13:00
  • 9
    cygwin: try "cygstart" Sep 10, 2009 at 15:02
  • 13
    gnome-open is GNOME-specific. xdg-open is available on all Freedesktop.org compliant distros.
    – Avdi
    Oct 25, 2009 at 14:18
  • @DougHarris, +1. cygstart may be further preferable, as in Emacs bookmarks, it allows one to continue using Emacs. With start, my Emacs is frozen. Mar 23, 2014 at 23:17
  • Then, start is nice if you don't want to rely on Cygwin being available. start "" or "start \"\"" just worked for me. (Set of quotes "" prevents Emacs hanging on process.) Mar 24, 2014 at 0:24
37
xdg-open xyz.bar

will open xyz.bar (a file or URL) in any freedesktop-compatible environment via the application registered for xyz.bar's type. See also the man page for xdg-open.

In practice this should then call kde-open, gnome-open, exo-open or possibly even open, depending on the current desktop environment (KDE, Gnome, XFCE, OS X).

5
  • 3
    also works. What's the difference between xdg-open and gnome-open ?
    – jweede
    Sep 10, 2009 at 13:28
  • 5
    well, xdg-open was developed by the freedesktop.org folks which claim to create the "standard", while gnome-open was developed by the gnome folks .. which you only get when you install gnome. i personally like the freedesktop.org stuff more.
    – akira
    Sep 10, 2009 at 13:32
  • 2
    Indeed, xdg-open is the right answer here. gnome-open is specific to desktops that have GNOME installed. xdg-open will be available on any freedesktop-compliant system.
    – Avdi
    Oct 25, 2009 at 14:19
  • 2
    "xdg-open will be available on any freedesktop-compliant system" means, in practice, that no matter whether you are using GNOME, KDE, Xfce, or any other environment, xdg-open will do the Right Thing, using the file-type-to-program mapping of the running environment. Jan 16, 2012 at 20:26
  • It's almost equivalent to Mac's "open" command, but not quite — I'm finding (under Ubuntu 14 at least) that when I use it on a directory, the directory opens in the background. I'd rather it bring the freshly opened window to the front. Any way to make it do that? (Forgive me, I'm a total Linux noob.)
    – Joe Strout
    Jul 26, 2017 at 15:22
11

You can even write a small wrapper around gnome-open to open multiple files with one command:

for i in $*
do
    gnome-open "$i"
done

Put this into a shell script named open and

open *.c

will open all c files in the current directory.

1
  • 3
    Useful script, but you'll want to replace $* with "$@" (including the quotes) to properly handle filenames with spaces.
    – pimlottc
    Jan 3, 2012 at 22:44
2

You can use the gnome-open command in your Terminal. Once in the directory which you want to open an OS window of, type in the Terminal:

gnome-open .

This will open a window showing what is in this folder. Similarly, you can specify a subfolder located in this directory by substituting the . by the name of the subfolder.

Note that if gnome-open doesn't work, it may just need to be installed. You can do so using Synaptic (sudo apt-get update and then sudo apt-get install synaptic in your terminal, very convinient when installing package because it installs all the dependencies properly) or directly install Gnome Shell in your Terminal: sudo apt-get install gnome-shell

-1

Enter this into the terminal: ./yourfile

yourfile is the name of the file you want to open or run. You can also use this command to run bash scripts. (Remember to enter the file extension!)

gnome-open is what you're looking for.

Another quote from another poster.

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.