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.
-
unclear. Be specific. How did you open that file?– Avinash RajJun 2, 2014 at 16:14
-
I have just clicked on it in nautilus, it has the orange selection, I haven't opened it.– TimJun 2, 2014 at 16:20
-
What is the use case? Are you trying to automate something, or is it just a convenience?– l0b0Jun 2, 2014 at 16:26
-
It is to copy the file to a shared folder when I drag it to the side of the screen.– TimJun 2, 2014 at 16:27
-
@Tim, What's the deference, adding that shared folder to bookmakes on side panel. It seems same, you just need to drag it (with Ctrl key pressed for copying)– user.dzJun 2, 2014 at 16:43
2 Answers
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.
-
Is there a way without dragging it to the terminal, just having it selected, then executing a command to display the location there?– TimJun 2, 2014 at 16:19
I think the best thing to fit here is a nautilus plugin.
Install python-nautilus
sudo apt-get install python-nautilus
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 asenv
variable. So current selection will be accessible for all other scripts. (security hole)Kill nautilus
pkill nautilus
Reference: