Opening current directory from a terminal onto a file browser?

91,631

Solution 1

xdg-open .

xdg-open is part of the xdg-utils package, which is commonly installed by default in many distributions (including Ubuntu). It is designed to work for multiple desktop environments, calling the default handler for the file type in your desktop environment.

You can pass a directory, file, or URL, and it will open the proper program for that parameter. For example, on my KDE system:

  • xdg-open . opens the current directory in the Dolphin file manager
  • xdg-open foo.txt opens foo.txt in emacsclient, which I've configured to be the default handler for .txt files
  • xdg-open http://www.google.com/ opens google.com in my default web browser

The application opens as a separate window, and you'll get a prompt back in your terminal and can issue other commands or close your terminal without affecting your new GUI window.

I usually get a bunch of error message printed to stderr, but I just ignore them.

Edit:
Adding the arguments xdg-open . >/dev/null 2>&1 redirects the errors and the output. This call won't block your terminal. Binding this to an alias like filemanager='xdg-open . >/dev/null 2>&1' can come in handy.

Solution 2

Almost any GUI application (on X window systems) can be opened from a terminal window within that GUI. To open any GUI app, type the name of the executable at the shell prompt. Most file browsers take a directory as a command line argument, so you should usually pass . as the parameter.

Here are some examples for some popular systems, most X based systems work similarly.

On Gnome, you can run nautilus (the default file browser) directly, or on Gnome 2, you can use gnome-open to open any file (including directories) with the configured Gnome file handler application:

$ nautilus .

or

$ gnome-open .

On KDE, there are two popular file browsers, I'm not aware of a command similar to gnome-open, though gnome-open can be executed within KDE, but by default it opens Gnome apps.

$ dolphin .

or

$ konquerer .

On OS X, as mentioned in comments, a similar command line program, open can be used.

$ open .

What if you don't know the executable name of your system's file browser?

If on Gnome 2, use gnome-open . If on OS X, call open .. Each of these will execute the configured file browser for your GUI environment.

If you don't know of such a command in your window system, here's one way to find out on systems with a ps command that understands the options -u USER and -o FORMAT:

  1. In your terminal window, type ps -u$USER -o comm > /tmp/$$A
  2. In your GUI, start the file browser.
  3. Back in your terminal window, type ps -u $USER -o comm > /tmp/$$B (Notice the B suffix, this is a different file than step 1).
  4. Also in the terminal, type diff /tmp/$$[AB].

Should display the name of your file browser. It's possible you could see more than one name, if another program happened to start under your user id during the time between the calls to ps.

For example:

$ ps -u $USER -o comm > /tmp/$$A
$ # open file browser in gui
$ ps -u $USER -o comm > /tmp/$$B
$ diff /tmp/$$[AB]
95a96
> nautilus

Solution 3

Simply use gio open

Use -

gio open .
gio open example/

Solution 4

Ubuntu uses as default file browser nautilus as far as I remember. Therefore to open a certain folder from terminal you can type something like the following:

nautilus /path/to/your/dir

or

cd /path/to/your/dir && nautilus .

nautilus automatically deataches itself from the terminal it was called, but suppose you are using another file browser, and you want to close the terminal from which you called your file browser, you can use nohup to do so. If you are using, let's say, thunar (another file browser), you can type the following:

nohup thunar /path/to/your/dir & exit
Share:
91,631

Related videos on Youtube

Paul
Author by

Paul

Senior Aerospace Engineer Specialties: Multiphysics Modeling and Simulation Heterogeneous Multiscale Methods Computational Orbital Mechanics Computational Electromagnetics Computational Solid Mechanics Computational Fluid Dynamics Computational Heat Transfer Finite Difference Methods Computational Robotics Finite Element Methods Finite Volume Methods Numerical Analysis Calculus Jokes Analogies Education: PhD. Computational Science M.S. Computational Science M.S. Applied Mathematics B.S. Mathematics and Spanish Past: Computational Scientist Thermal Engineer NASA Intern NSF Fellow Lecturer.

Updated on September 18, 2022

Comments

  • Paul
    Paul over 1 year

    My current directory is buried deep in multiple subfolder layers from my home directory. If I want to open this directory in a gui-based file browser, I have to double click folder after folder to reach it. This is very time consuming. On the other hand, with very few key strokes and several times hitting the tab button, it is very easily reachable via a terminal.

    I want to know if there is a way to open the current directory in a terminal onto a a file browser. What is the command to do this?

    For reference, I have an ubuntu system, but I'd like to know what the commands are across the various distributions of linux.

    • dhag
      dhag over 8 years
      That would depend on the specific "file explorer" or windowing system you are using. As a reference, on Mac OS X, open . will open a Finder window on the current directory. A similar command may exist on your system.
    • Anthony Geoghegan
      Anthony Geoghegan over 8 years
      You should edit your question to include which GUI-based file explorer you're using / want to use.
    • saiarcot895
      saiarcot895 over 8 years
      @drewbenn: I would post that as an answer, as that will work for different environments.
  • Paul
    Paul over 8 years
    If you don't know which file browser your system has, how can you find out from the command line?
  • RobertL
    RobertL over 8 years
    @Paul, please see updated answer. Thanks.
  • Adil Saju
    Adil Saju over 4 years
    Golden. Thank you
  • Tono Nam
    Tono Nam over 3 years
    What does xdg stands for? Hoping I can remember for the command. Answering my own question X Desktop Group