查找调用bash脚本的桌面快捷方式的位置

时间:2012-04-25 05:44:11

标签: bash shortcut freedesktop.org

我有一个桌面快捷方式,例如/home/user/Desktop/myfolder/link.desktop,它会调用位于其他位置的bash脚本,例如/tmp/myscript.sh

在我的脚本中,如何找到调用脚本的快捷方式的路径?它有可能吗?

我真正想要实现的是存在一个子文件夹,其中快捷方式链接是,例如, /home/user/Desktop/myfolder/subfolder。在我的脚本中,我希望能够访问子文件夹。

我已尝试readlink -f,但无论快捷方式图标位于何处,都会返回/home/user

我无法设置工作路径,因为快捷链接已生成并动态放置在不同的位置。

1 个答案:

答案 0 :(得分:1)

至少你可以在你的剧本中做这样的事情:

find / -iname '*desktop' -exec fgrep -l $0 \{\} \; 2>/dev/null

这将浏览你的文件系统,并在其中搜索每个.desktop文件中的脚本...但 note ,这可能会产生误导,因为有人可以在{{1 } ...所以你可以先创建一个搜索字符串,如.desktop,然后使用^Exec=/PATH/TO/$0代替egrep

或者您可以执行复制功能,在将fgrep文件复制到其位置时对其进行编辑,并将其新位置作为参数添加到.desktop行,例如:

Exec

或(和我一起使用)使用mycp() { sed "s/^Exec=.*/& $2/" $1 > $2 } according to the spec中的%k参数。