Извините за теги. Я не знаю, к чему это относится. Удалите ненужные, а затем удалите эту строку. Или комментарий, и я сделаю это сам.
Фон
Я хочу поместить ссылку на файл, расположенный в /home/myname/some/path/file.tex на моем рабочем столе. Этот файл TeX вызывает в нем другие файлы TeX. Теперь, когда я открываю ссылку, которая находится на рабочем столе, мой редактор TeX, он говорит, что я открыл файл /home/myname/Desktop/file.tex. Я не могу скомпилировать этот файл, потому что другие файлы TeX, на которые опирается основной файл TeX, не находятся там, где ожидает их программа.
Фон
Как сделать файл ссылки открыть целевой файл в его фактическом местоположении, а не на рабочем столе?
Решение, предлагаемое здесь, не работает должным образом. С
#!/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 - это сценарий оболочки, расположенный на моем рабочем столе.
Хотя, если я открываю терминал и делаю
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
Я не знаю, как заставить ссылку работать так, но это относительно простой способ сделать это.
Проблема заключается в том, что программа, вызываемая для обработки ваших данных, не является
Вместо того, чтобы связывать сам файл, напишите сценарий запуска и передайте его местоположение файла в качестве параметра. Затем добавьте ссылку на сценарий из записи вашего рабочего стола.
По крайней мере, в 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 и заставить его делать всевозможные интересные вещи. Я не очень много сделал с ними.
Просто увидел этот ответ, который по сути тот же, что и мой, с немного другим вращением к нему.
Я не знаю, как заставить ссылку работать так, но это относительно простой способ сделать это.
Проблема заключается в том, что программа, вызываемая для обработки ваших данных, не является
Вместо того, чтобы связывать сам файл, напишите сценарий запуска и передайте его местоположение файла в качестве параметра. Затем добавьте ссылку на сценарий из записи вашего рабочего стола.
По крайней мере, в 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 и заставить его делать всевозможные интересные вещи. Я не очень много сделал с ними.
Просто увидел этот ответ, который по сути тот же, что и мой, с немного другим вращением к нему.