Linux equivalent command for "open" command on Mac/Windows?

23,562

Solution 1

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.

Solution 2

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).

Solution 3

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.

Solution 4

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

Share:
23,562

Related videos on Youtube

jweede
Author by

jweede

Updated on September 17, 2022

Comments

  • jweede
    jweede over 1 year

    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?

    • Mikko Ohtamaa
      Mikko Ohtamaa over 12 years
      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
    • CodyChan
      CodyChan over 6 years
      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.
  • jweede
    jweede over 14 years
    That BASH script is a great idea.
  • jweede
    jweede over 14 years
    also works. What's the difference between xdg-open and gnome-open ?
  • akira
    akira over 14 years
    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.
  • Doug Harris
    Doug Harris over 14 years
    cygwin: try "cygstart"
  • Ryan Sequeira
    Ryan Sequeira over 14 years
    gnome-open is GNOME-specific. xdg-open is available on all Freedesktop.org compliant distros.
  • Ryan Sequeira
    Ryan Sequeira over 14 years
    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.
  • pimlottc
    pimlottc over 12 years
    Useful script, but you'll want to replace $* with "$@" (including the quotes) to properly handle filenames with spaces.
  • RavuAlHemio
    RavuAlHemio over 12 years
    "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.
  • Brady Trainor
    Brady Trainor about 10 years
    @DougHarris, +1. cygstart may be further preferable, as in Emacs bookmarks, it allows one to continue using Emacs. With start, my Emacs is frozen.
  • Brady Trainor
    Brady Trainor about 10 years
    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.)
  • eadmaster
    eadmaster almost 10 years
    "xdg-open" does not support launching executable programs for safety - use "exec" for them.
  • Joe Strout
    Joe Strout almost 7 years
    I wonder if this script could be extended to detect when it's an executable program, and use exec for those?
  • Joe Strout
    Joe Strout almost 7 years
    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.)