Я получил пользовательский сценарий удара, который извлекает все архивные файлы и ожидает входа. Ниже:
#!/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 для открытия всех архивных файлов. Запущение скрипта от терминала не является никакой проблемой, но поскольку я пытаюсь использовать его в Рейнджере, я добираюсь:
/usr/bin/extract.sh - маркировка не определена.
Я добавил следующее к своему .config/ranger/rifle.conf:
маркировать извлечение, расширение 7z|ace|ar|arc|bz2? |cab|cpio|cpt|deb|dgc|dmg|gz, =/usr/bin/extract.sh - "$"
Все же это не работает. Что я сделал неправильно?
Заранее спасибо.
Я решил его. Для любого заинтересованного, это была комбинация простой синтаксической ошибки и имеющий необходимость к:
Помещенный сценарий, названный extract.sh, в/bin/extract (без .sh)
, Добавляют псевдоним как таковой к .zshrc: исказите извлечение = "/bin/extract"
, Имеют следующие строки в .config/ranger/rifle.conf (синтаксическая ошибка:):
расширение 7z|ace|ar|arc|bz2? |cab|cpio|cpt|deb|dgc|dmg|gz, имеет aunpack = извлечение "$"
расширение iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, имеет tar, 'отметьте f = извлечение "$"
извлечение маркировки, расширение 7z|ace|ar|arc|bz2? |cab|cpio|cpt|deb|dgc|dmg|gz, =/bin/extract