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

레인저 FM을 사용하고 있습니다. /usr/bin/extract.sh 스크립트를 사용하여 모든 아카이브 파일을 열도록 노력 중입니다. 터미널에서 스크립트를 실행하는 것은 문제가 없지만 Ranger에서 사용하려고 하면 다음과 같은 결과가 나타납니다.

/usr/bin/extract.sh - 레이블이 정의되지 않았습니다.

.config/ranger/rifle.conf에 다음을 추가했습니다.

라벨 추출, 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 = 추출 "$@" 있음

    ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, tar 있음, ' 플래그 f = "$@" 추출

    라벨 추출, ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, = /bin/extract

관련 정보