Você pode usar o seguinte script de shell (eu o nomeei extract
e o coloquei ~/bin
):
#! / bin / bash
se [$ # -lt 1]; então
echo "Uso:` basename $ 0` FILES "
saída 1
fi
# Encontrei a seguinte função em https://unix.stackexchange.com/a/168/37944
#, que a aprimorei um pouco. Muito obrigado a sydo por essa idéia.
extrair () {
para arg em $ @; Faz
se [-f $ arg]; então
case $ arg in
* .tar.bz2) tar xjf $ arg ;;
* .tar.gz) tar xzf $ arg ;;
* .bz2) bunzip2 $ arg ;;
* .gz) gunzip $ arg ;;
* .tar) tar xf $ arg ;;
* .tbz2) tar xjf $ arg ;;
* .tgz) tar xzf $ arg ;;
* .zip) descompacte $ arg ;;
* .Z) descompacte $ arg ;;
* .rar) rar x $ arg ;; # 'rar' deve ser instalado
* .jar) jar -xvf $ arg ;; # 'jdk' deve estar instalado
*) echo "'$ arg' não pode ser extraído via extract ()" ;;
esac
outro
echo "'$ arg' não é um arquivo válido"
fi
feito
}
extrair $ @
Não se esqueça de tornar o script executável:
chmod +x ~/bin/extract
Uso:
extrair arquivo_1 arquivo_2 ... arquivo_n
atool
, com o qual você pode extrair / empacotar vários formatos: veja a resposta que dei para esta pergunta: linha de comando-arquivo-gerenciador-extrator . Essa pergunta também é uma duplicata da pergunta, portanto eles provavelmente devem ser mesclados.