在终端中运行的相同命令无法作为 Thunar Custom Action 运行

在终端中运行的相同命令无法作为 Thunar Custom Action 运行

我想要一个简单的半安全命令,使用 gpg 对称加密来加密文件,然后删除原始文件。在终端中,此命令运行正常:

 gpg --passphrase-file /home/xxx/.gnupg/sympass --symmetric <file> && rm <file>

要加密(和删除)的文件在哪里<file>。这在终端中运行良好,但当我尝试以这种方式在 Thunar 中执行自定义操作时

xfce4-terminal -e gpg --passphrase-file /home/xxx/.gnupg/sympass --symmetric %f && rm %f

并尝试在 Thunar 中使用此操作,没有任何反应。为什么?是否有某种方法可以调试 Thunar 自定义操作?

答案1

这里有两个问题。一个是无法&&识别,您需要一个完整的 shell;另一个是,为了运行它,您需要一个 tty,而 thunar 从 GUI 菜单启动时没有这个 tty。因此,首先编写一个包含以下内容的脚本:

#!/bin/bash
gpg --passphrase-file /home/beos/.gnupg/sympass --symmetric "$1"  && rm "$1"

使脚本可执行(chmod a+x /path/to/script.sh),然后将操作设置为:

xfce4-terminal -x /path/to/script.sh %f

这应该会导致它在终端和正常的 bash 会话中运行,因此它应该按预期工作。

相关内容