A tarefa de extração de tarballs iniciar ao abrir um console, trocar para o diretórios do seu tarball e então digitar o comando tar seguido dos argumentos de acordo com o arquivo que você quer extrair. É aonde encontramos um leve problema. Admitimos que não é um grande problema, mas quando você faz isso repetidamente, começa a ser um incômodo real. O problema é que você precisa lembrar qual o tipo de arquivo que você vai extrair antes de autocompletar o nome do arquivo. Normalmente é bz2 ou gz, mas você precisa especificar o 'z' ou o 'j' antes de sabê-lo.
Podemos escrever um script usando um arquivo de comando para determinar o tipo de arquivo e depois passá-lo através da condição 'if' para determinar o comando correto de extração. Você pode preferir embutir os argumentos que usa sempre no script, mas neste caso eles são apenas transmitidos para o comando. O script inicia com a definição do tipo de arquivo, usando o código a seguir:
#!/bin/bash FILE_TYPE=$(file -b $2|awk '{ print $1}')
Com o argumento 'b', o arquivo de comando retorna apenas uma pequena linha de dados, sendo o primeiro caracter o tipo de arquivo. Esta informação é extraída desta linha ao acoplar a saída através de awk
. Depois apenas precisaremos de usar o 'if' para executar o comando correto.
if [ "$FILE_TYPE" = "bzip2" ]; then tar "$1j" "$2" elif [ "$FILE_TYPE" = "gzip" ]; then tar "$1z" "$2" fi
Obviamente, é simples adicionar seus próprios tipos e deixar esta parte mais compreensível. Será preciso salvar seu script com um nome conveniente (escolher lfx) e colocá-lo na sua pasta (como um ~/bin). Descomprimir arquivos tar será depois será simples ao digitar:
$ lfx xvf ~/testfile.bz2