Как я могу получить доступ к локальным данным текущего выбранного файла или папки?

Я хочу, чтобы иметь возможность выбирать файл, запускать скрипт с ярлыком, и этот скрипт получает путь к выбранному мной файлу (или перетаскиванию). Я выбрал его в наутилусе.

Я знаю, как выполнить команду, я просто не знаю, как получить местоположение выбранного файла. Я предполагаю, что это возможно, потому что, если я перетаскиваю файл на терминал, он вставляет путь …


Для чего я это использовал? У меня есть программа под названием synergy, которая предназначена для использования 1 мыши и 1 клавиатуры на многих компьютерах, используя локальную сеть.

Вы можете настроить его, чтобы ваши экраны были рядом друг с другом, например:

Однако (поскольку это бесплатная версия), я не могу перетаскивать файлы между ними. Таким образом, эта док-станция настроена между двумя экранами, и когда я перетаскиваю файл, я могу его отбросить – и он копирует его на один и тот же путь на втором компьютере (если он существует) или в папку misc.

С небольшим reaserch я узнал, что вы можете искать. Это можно сделать с помощью файлов .desktop . Позвольте мне продемонстрировать.

Создайте файл в вашей домашней директории (в качестве примера) с расширением .desktop со следующим содержимым:

 #!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Type=Application Terminal=true Exec=bash <path-to-your-script> %u Name=visible name here Comment=comment here Icon=icon path here 

Замените <path-to-your-script> путь к сценарию, который вы хотите выполнить. Здесь %u – это путь к файлу, который вы будете перетаскивать в файле .desktop, чтобы запустить сценарий. Это, очевидно, будет передано в качестве аргумента для вашего скрипта.

Не забудьте сделать также исполняемый файл .desktop :

 chmod u+x test.desktop 

Чтобы проверить, работает ли он, вы можете указать его на этот скрипт:

 #!/bin/sh echo $1 > ~/out.txt 

Вы увидите полный путь к файлу, который вы перетащили в файл .desktop, хранящийся в out.txt, в вашем домашнем каталоге.

Наконец, вы можете настроить док-станцию, чтобы иметь в ней только это, поэтому у вас есть это рядом с экраном.

Рекомендации:

Спецификация рабочего стола

Разработчик Gnome – файлы рабочего стола

Для тех, кому не понравилось решение для док-станции, можно просто использовать переменную окружения Nautilus NAUTILUS_SCRIPT_SELECTED_FILE_PATHS или $@ Запишите сценарий, поместите его в папку сценариев, чтобы он отображался в контекстном меню. Преимущество состоит в том, что вы можете выбрать больше файлов одновременно. Чтобы проверить это:

 #!/bin/bash notify-send $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS exit 0