web-dev-qa-db-ja.com

ターミナルで機能する同じコマンドは、Thunarカスタムアクションとして機能しません

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でこのアクションを使用しようとしても、何も起こりません。なぜ、そしてTunarカスタムアクションをデバッグする方法がありますか?

3
Bengt Olsson

ここには2つの問題があります。 1つは、&&は認識されず、完全なシェルが必要です。もう1つは、実行するために、GUIメニューから起動したときにthunarにない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セッションで実行され、期待どおりに動作するはずです。

6
terdon