모든 아카이브 파일을 추출하고 입력을 기다리는 사용자 정의 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
나는 그것을 해결했다. 관심 있는 사람이라면 누구나 간단한 구문 오류와 다음 작업을 수행해야 하는 상황이 결합된 것이었습니다.
extract.sh라는 스크립트를 /bin/extract(.sh 제외)에 넣습니다.
.zshrc에 별칭을 추가합니다: alias extract="/bin/extract"
.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