Хотел открыть файл (файл .pdb: структура белка, неважно) двойным щелчком мыши.
«Открыть с помощью» направляется вручную для запуска «pymol» (программы, открывающей формат .pdb) с помощью Ubuntu Tweak.
Однако я обнаружил, что рабочим каталогом является $ HOME.
Поскольку другие файлы в каталоге, который я открыл, имеют решающее значение, я хочу получить к ним доступ.
Я предполагаю, что "pymol" выполняется в $ HOME, в то время как абсолютный путь к файлу "pdb" (файл двойного щелчка) передается в качестве аргумента.
Я предполагаю, что это несколько общая проблема и задаю вопрос:
Как я могу позволить системе изменить «рабочий каталог» на «каталог, в котором я щелкнул файл» и запустить программу?
источник
~
правильного определения вам нужна часть bash -c . Вам не нужен bash -c, если вы используете прямой путь / home / marc.cd "%k"
не будет работать. Но вы можете использоватьcd "$(dirname %k)"
.&&
выполнения чего-то относительно~
?Ни одно из вышеуказанных решений не сработало на моем Debian. Также
%d
не рекомендуется. См. Спецификацию входа на рабочий стол .Поэтому я использую следующий скрипт bash для запуска pymol. Сначала вам нужно создать следующий файл скрипта bash и сохранить его в
/usr/local/bin/run_pymol.sh
. Я сохранил файл,/usr/local
потому что кажется, чтоxdg-open
он не понимает, что такое каталог HOME или так далее.Во-вторых, дайте исполняемому разрешению этот файл. Откройте терминал и введите следующие команды, чтобы дать разрешение и подтвердить.
Наконец, измените ваш
pymol.desktop
файл следующим образом, и тогда ваш pymol запустится в каталоге, где расположен первый данный файл.Надеюсь, это поможет вам, ребята :-)
источник
Path=/my/path
и это работало просто отлично.Path - If entry is of type Application, the working directory to run the program in.
Я не понимаю, почему решение там так проголосовало, оно делает абсолютно разные вещи. Он меняет рабочий каталог на тот, где находится файл .desktop, в то время как вопрос о том, чтобы изменить рабочий каталог на тот, у которого открыт файл (ы).
Мое решение:
Имейте в виду, что установка переменных env для файлов .desktop отличается, например, так
источник
Вы можете пойти
/usr/share/applications
и найти правильный,file.desktop
который вызывается всякий раз, когда вы открываете файл определенного типа. Затем отредактируйте его и вexec
строке добавьтеcd PATH &&
в начало строки.источник
ХОРОШО -
у меня не сработало, поскольку PATH не определен, чтобы указывать путь% F. Единственные переменные, доступные в любом файле рабочего стола приложения:
Вот оно:% d - это единственный каталог, который вы ищете, так как нет смысла переходить на несколько каталогов. Перейдите в / usr / share / Applications и отредактируйте файл application-name.desktop (в вашем случае pymol.desktop); Вы должны иметь привилегии суперпользователя, чтобы сделать это. Затем найдите строку, которая начинается с «Exec =». Это, вероятно, читает
(В вашем случае Exec = pymol% F). Измените эту строку на
Сохраните этот файл рабочего стола, и в следующий раз, когда вы нажмете на файл .pdb, ваш рабочий каталог должен быть тем, в котором находится этот файл .pdb, так что pymol сможет увидеть все ваши файлы там.
Конечно, вы также можете запустить pymol из командной строки после первого перехода в каталог, где находятся ваши файлы, но я думаю, что вам нужно решение с графическим интерфейсом, поэтому вам нужно немного отредактировать :-)
источник