Ranger ファイル マネージャー - カスタム スクリプトを使用してアーカイブ ファイルを開くにはどうすればよいでしょうか?

Ranger ファイル マネージャー - カスタム スクリプトを使用してアーカイブ ファイルを開くにはどうすればよいでしょうか?

すべてのアーカイブ ファイルを抽出し、入力を待つカスタム bash スクリプトを取得しました。以下:

    #!/bin/bash

GET="."

SCRIPTNAME="${0##*/}"

err() {
    printf >&2 "$SCRIPTNAME: $*\n"
    exit 1
}

ARC="$1"
[[ -f $ARC ]] || err $"'$ARC' does not exist"
ARC="$(readlink -f "$ARC")"

read -p "Extract to [default: $DEFAULT_TARGET]: " TARGET
[[ -z $TARGET ]] &&\
    TARGET="$DEFAULT_TARGET"
[[ -d $TARGET ]] || err $"Directory '$TARGET' does not exist"
[[ -w $TARGET ]] || err $"Permission denied: '$TARGET' is not writable"

cd "$TARGET"
case "$ARC" in
    *.tar.bz2)   tar xjf "$ARC"     ;;
    *.tar.gz)    tar xzf "$ARC"     ;;
    *.bz2)       bunzip2 "$ARC"     ;;
    *.rar)       unrar e "$ARC"     ;;
    *.gz)        gunzip "$ARC"      ;;
    *.tar)       tar xf "$ARC"      ;;
    *.tbz2)      tar xjf "$ARC"     ;;
    *.tgz)       tar xzf "$ARC"     ;;
    *.zip)       unzip "$ARC"       ;;
    *.Z)         uncompress "$ARC"  ;;
    *.7z)        7z x "$ARC"        ;;
    *)           echo "'$ARC' cannot be extracted by $SCRIPTNAME" ;;
esac

私は Ranger FM を使用しています。すべてのアーカイブ ファイルを開くために、スクリプト /usr/bin/extract.sh を使用しようとしています。ターミナルからスクリプトを実行するのは問題ありませんが、Ranger で使用しようとすると、次のエラーが発生します。

/usr/bin/extract.sh - ラベルが未定義です。

.config/ranger/rifle.conf に以下を追加しました:

ラベル extract、ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz、= /usr/bin/extract.sh -- "$@"

しかし、動作しません。何を間違えたのでしょうか?

よろしくお願いします。

答え1

解決しました。興味のある方のために説明すると、単純な構文エラーと、次の操作を行う必要があったことが原因です。

  1. extract.sh という名前のスクリプトを /bin/extract (.sh なし) に配置します。

  2. .zshrc に次のようなエイリアスを追加します: alias extract="/bin/extract"

  3. .config/ranger/rifle.conf に次の行があります (構文エラー :):

    ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz には、aunpack = extract "$@" があります。

    ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip、tar あり、' フラグ f = extract "$@"

    ラベル extract、ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz、= /bin/extract

関連情報