使链接打开目标文件,而不是链接位置的文件

对不起标签。 我不知道哪一个适用。 请删除不相关的,然后删除此行。 或评论,我会自己做。

背景

我想在桌面上放置一个位于/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是我桌面上的包装脚本。

编辑2

虽然,如果我打开一个终端并做

 chmod a+x ./open-file.sh 

并将exec更改为texstudio ,顺便说texstudio ,我用来打开.tex文件的程序,然后我可以打开一个终端并做

 bash open-file.sh 

它将启动TeXStudio,并在所需的目标位置加载所需的文件。 我仍然不能在我的桌面上双击open-file.sh,因为这将打开我的文本编辑器,让我编辑bash脚本。 我想双击open-file.sh脚本文件,让TeXStudio打开我的file.tex文件。

###编辑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 

这处理最基本的用法,并说明了该方法,但不处理任何错误,如错误或缺少参数

为了获得更多function,您可以使用dirname或bash参数编辑从指定的数据文件路径中提取路径,而不是将其作为单独的参数传递。

完成这项工作的快速而肮脏的方法 – 特别是测试其工作原理 – 只需编辑桌面图标即可运行

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

由于这是Linux,因此可能还有许多其他方法可以做到这一点。

如果您将文件添加为桌面上的图标,则可以直接编辑其.desktop文件并使其执行各种有趣的操作。 我没有做太多的事情。

刚刚看到这个答案与我的答案基本相同,但与之略有不同。