例如,假设我在我的 下定义了一个别名.bash_aliases
,
alias gotoheaven="xdg-open /path/to/heaven"
现在我想在桌面上为它创建一个可点击的图标。[我知道make link
创建文件夹快捷方式,但我问的这个只是举个例子,这样我就可以扩展它来创建任何其他类型的快捷方式]。编辑:快捷方式绑定到别名。类似于open Terminal and run gotoheaven
。这样我就不必将别名重新写入 Exec 条目。
答案1
确切地说有一种方法,即在交互式 shell 中运行别名;
即创建一个包含以下行的桌面文件Exec=
:
Exec=bash -c 'exec bash -i <<<"gotoheaven"'
bash -c '[...]'
:启动一个非交互式 shell(这是利用<<<
重定向所必需的)并[...]
在其中运行;exec bash -i <<<"gotoheaven"
:用交互式 shell 替换非交互式 shell,并重定向gotoheaven
到交互式 shell 的 STDIN,后者提供~/.bashrc
并运行别名。
但是,由于这需要或多或少相同的努力将命令从别名复制粘贴到新的桌面文件中,但运行额外的 shell,我建议您只需将命令从别名复制粘贴到新的桌面文件中,如其中一个答案中所述这个问题。
您似乎被困在这样一个事实中:快捷方式必须运行别名而不是相同的命令,除非您需要在设置的环境中运行该命令~/.bashrc
(但似乎并非如此),否则这毫无意义。只需创建一个运行相同命令的桌面文件即可。
答案2
别名属于 shell,不是外部命令。因此无法为别名创建快捷方式。
但是,可以使用别名中引用的命令并创建 .desktop 文件(基本上是快捷方式),然后在 Exec= 后输入要运行的命令
以下是其样子的一个例子:
[Desktop Entry]
Name=MyAppName
Type=Application
Exec=xdg-open /path/to/heaven
Terminal=false
Icon=/path/to/image.png
字段是可选的。Terminal=
必须放置部分以指示是否需要在终端上显示输出。对于你的情况,我认为没有必要,因为你正在使用xdg-open
打开某个文件
您可能需要通过右键单击文件,打开属性,然后在权限选项卡下选中“执行”来使文件可执行
或者通过chmod +x /path/to/MyAppName.desktop
答案3
您不能为别名设置快捷方式,但是您可以使用这个技巧来创建一个名为与您的别名相同的启动器。在您的终端中运行以下命令:
gnome-desktop-item-edit --create-new ~/Desktop
这将启动一个 GUI 对话框来在你的桌面上创建一个启动器:
给出一个与您的别名“gotohell”相同的名称,并在命令中插入您的命令:xdg-open "/path/to/hell"
现在你可以在桌面上找到一个名为“gotohell”的 .desktop 文件
答案4
这对我有用
在命令中使用bash -i -c "your-alias-name"
这也适用于快捷方式
如果你遇到问题,请替换bash
为/usr/bin/bash
-i 使其变得难以处理,如果别名来自 ~/.bashrc 文件则需要这样做(根据@NotTheDr01ds)
-c 使其接受后面的内容作为 bash 提示符的代码