Сделать ссылку открытым целевым файлом, а не файлом в месте ссылки

Извините за теги. Я не знаю, к чему это относится. Удалите ненужные, а затем удалите эту строку. Или комментарий, и я сделаю это сам.

Фон

Я хочу поместить ссылку на файл, расположенный в /home/myname/some/path/file.tex на моем рабочем столе. Этот файл TeX вызывает в нем другие файлы TeX. Теперь, когда я открываю ссылку, которая находится на рабочем столе, мой редактор TeX, он говорит, что я открыл файл /home/myname/Desktop/file.tex. Я не могу скомпилировать этот файл, потому что другие файлы TeX, на которые опирается основной файл TeX, не находятся там, где ожидает их программа.

Фон

Как сделать файл ссылки открыть целевой файл в его фактическом местоположении, а не на рабочем столе?

EDIT

Решение, предлагаемое здесь, не работает должным образом. С

#!/bin/bash exec /home/myname/some/path/file.tex "$@"

Я получаю

/tmp/geany_run_script_JVX1HZ.sh: 7: /tmp/geany_run_script_JVX1HZ.sh: ./open-file.sh: Permission denied —---------------- (program exited with code: 126) Press return to continue

Где open-file.sh - это сценарий оболочки, расположенный на моем рабочем столе.

EDIT 2

Хотя, если я открываю терминал и делаю

chmod a+x ./open-file.sh

и меняю exec на texstudio, что, кстати, является программой, которую я использую для открытия файлов .tex, тогда я могу открыть terminal и do

bash open-file.sh

, он запустит TeXStudio с желаемым файлом, загруженным в желаемое целевое местоположение. Я все еще не могу просто дважды щелкнуть open-file.sh на своем рабочем столе, так как это откроет мой текстовый редактор, позволяя мне редактировать скрипт bash. Я хочу дважды щелкнуть файл сценария open-file.sh и открыть TeXStudio файл file.tex.

### EDIT 3

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

и то же самое здесь

-rwxr-xr-x me me 94 Apr 27 12:00 open-file

2
задан 27 April 2018 в 21:46

2 ответа

Я не знаю, как заставить ссылку работать так, но это относительно простой способ сделать это.

Проблема заключается в том, что программа, вызываемая для обработки ваших данных, не является

Вместо того, чтобы связывать сам файл, напишите сценарий запуска и передайте его местоположение файла в качестве параметра. Затем добавьте ссылку на сценарий из записи вашего рабочего стола.

По крайней мере, в KDE это проще сделать, добавив запись в Application Launcher со всеми параметрами, заданными так, как вы хотите, а затем перетащить запись из меню на рабочий стол. Он имеет кучу переменных-заполнителей, которые позволяют вам изменять эту команду и даже указывать рабочий каталог для использования.

Это может быть просто или фантастично. Начните с простого:

#!/bin/bash ## Usage: launcheroo working-directory data-file ## defending this script is left as an exercise for the reader ## ... or you can ask in the comments ;) cd "$1" myprog "$2" ## or your more fancy exec that will figure out ## what program to run by itself

вызывается как:

launcheroo path-to-data-files data-file

Это обрабатывает самое основное использование и иллюстрирует подход, но не обрабатывает никаких ошибок, таких как плохо или отсутствует Параметры

Чтобы получить немного более интересный, вы можете извлечь путь из указанного пути к файлу данных, используя редактирование параметра dirname или bash вместо передачи его в качестве отдельного параметра.

A быстрый и грязный способ сделать это - особенно для тестирования того, как это работает - просто отредактировать значок рабочего стола для запуска

cd where-the-files-are ; exec ...

Поскольку это Linux, возможно, есть много других способов сделать это

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

Просто увидел этот ответ, который по сути тот же, что и мой, с немного другим вращением к нему.

0
ответ дан 17 July 2018 в 16:06

Я не знаю, как заставить ссылку работать так, но это относительно простой способ сделать это.

Проблема заключается в том, что программа, вызываемая для обработки ваших данных, не является

Вместо того, чтобы связывать сам файл, напишите сценарий запуска и передайте его местоположение файла в качестве параметра. Затем добавьте ссылку на сценарий из записи вашего рабочего стола.

По крайней мере, в KDE это проще сделать, добавив запись в Application Launcher со всеми параметрами, заданными так, как вы хотите, а затем перетащить запись из меню на рабочий стол. Он имеет кучу переменных-заполнителей, которые позволяют вам изменять эту команду и даже указывать рабочий каталог для использования.

Это может быть просто или фантастично. Начните с простого:

#!/bin/bash ## Usage: launcheroo working-directory data-file ## defending this script is left as an exercise for the reader ## ... or you can ask in the comments ;) cd "$1" myprog "$2" ## or your more fancy exec that will figure out ## what program to run by itself

вызывается как:

launcheroo path-to-data-files data-file

Это обрабатывает самое основное использование и иллюстрирует подход, но не обрабатывает никаких ошибок, таких как плохо или отсутствует Параметры

Чтобы получить немного более интересный, вы можете извлечь путь из указанного пути к файлу данных, используя редактирование параметра dirname или bash вместо передачи его в качестве отдельного параметра.

A быстрый и грязный способ сделать это - особенно для тестирования того, как это работает - просто отредактировать значок рабочего стола для запуска

cd where-the-files-are ; exec ...

Поскольку это Linux, возможно, есть много других способов сделать это

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

Просто увидел этот ответ, который по сути тот же, что и мой, с немного другим вращением к нему.

0
ответ дан 23 July 2018 в 17:00
  • 1
    Слабая идея в стиле & quot; и заставить ее делать всевозможные интересные вещи & quot; это то, что заставило меня начать использовать Linux в первую очередь, но поскольку я не программист и мне трудно попасть в дело без прямого наставника, так как у меня есть дневная работа, я стараюсь делать все возможное способности, мне очень сложно заставить машины делать мои ставки. Спасибо за ответ, я посмотрю. – thymaro 3 May 2018 в 14:43
  • 2
    У всех разные навыки и приоритеты. Это то, что заставляет мир работать. Я был бы счастлив сделать шаг за шагом на этом, но это, вероятно, должно быть сделано за пределами Q & amp; A здесь. Я не знаю, как добраться отсюда туда, не публикуя мой личный адрес электронной почты и т. Д. Я увижу, что они говорят по мета. – Joe 4 May 2018 в 00:35
  • 3
    э-э ... вы можете наброситься на телеграмму, github или твиттер. Я использую один и тот же дескриптор для этих трех, как в сети SE. разрешены ли такие комментарии, когда явно не размещаются соответствующие ссылки? – thymaro 4 May 2018 в 10:30

Другие вопросы по тегам:

Похожие вопросы: