Я хочу иметь возможность выбрать файл, запустить скрипт с ярлыком, и этот скрипт получит путь к файлу, который я выбрал (или перетаскиваю). Я выбрал его в Наутилус.
Я знаю, как выполнить команду, я просто не знаю, как узнать местоположение выбранного файла. Я предполагаю, что это возможно, потому что, если я перетаскиваю файл на терминал, он вставляет путь ...
Для чего я это использовал? У меня есть программа под названием synergy , которая предназначена для использования 1 мыши и 1 клавиатуры на многих компьютерах с использованием локальной сети.
Вы можете настроить его так, чтобы ваши экраны располагались рядом друг с другом, например:
Однако (поскольку это бесплатная версия), я могу перетаскивайте файлы между ними. Таким образом, эта док-станция устанавливается между двумя экранами, и когда я перетаскиваю файл, я могу поместить его туда - и он копирует его по тому же пути на втором компьютере (если он существует) или в папку misc.
С небольшим reaserch я узнал то, что можно искать. Это может быть сделано с помощью .desktop
файлы. Позвольте мне продемонстрировать.
Создают файл в Вашем доме diretory (как пример) с расширением .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 в Вас корневой каталог.
Наконец, можно настроить прикрепление, чтобы иметь просто это в нем, таким образом, у Вас есть он со стороны экрана.
Ссылки:
Для тех тому, кто не сделал, понравилось решение для прикрепления, может просто использовать переменную среды Наутилуса NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
или $@
.Write сценарий, поместить его в эти папка сценариев , таким образом, это появится в контекстном меню. Преимущество состоит в том, что можно выбрать больше файлов сразу. Протестировать его:
#!/bin/bash
notify-send $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
exit 0