1

I want to be able to select a file, enter a command and have it return the current location of the file selected in a terminal.

Tim
  • 32,861
  • 27
  • 118
  • 178

2 Answers2

0

If you want to get a file name into a terminal program, you should be able to use either mouse drag'n'drop or Ctrl-c and Ctrl-(Shift-)v to copy/paste it into an editor/terminal.

l0b0
  • 8,819
  • Is there a way without dragging it to the terminal, just having it selected, then executing a command to display the location there? – Tim Jun 02 '14 at 16:19
0

I think the best thing to fit here is a nautilus plugin.

  1. Install python-nautilus

    sudo apt-get install python-nautilus
    
  2. Create a plugin "TestExtension.py"

    sudo nano /usr/share/nautilus-python/extensions/TestExtension.py
    

    This extension will call your script whenever the selection changes and pass the selection one by one as second command argument $1:

    from gi.repository import Nautilus, GObject
    import os
    
    class ColumnExtension(GObject.GObject, Nautilus.MenuProvider):
        def __init__(self):
            pass
    
        def menu_activate_cb(self, menu, file):
            print "menu_activate_cb",file
    
        def get_file_items(self, window, files):
    
            for file in files:
                uri = file.get_uri()
                if uri.startswith("file:///"):
                    os.system("yourscript_path"+" \""+uri[7:]+"\"")
    
            return
    

    Or you may make a list, combine them as single string, then export it as env variable. So current selection will be accessible for all other scripts. (security hole)

  3. Kill nautilus

    pkill nautilus
    

Reference:

user.dz
  • 48,105