Bash script compactar arquivos tar.xz

#!/usr/bin/env bash

#########################################

# test_compactar_e_desc_tar-xz.sh

# data: 30042020

# instale: xz-utils

# O que é um arquivo tar.xz? O tar é um utilitário que combina vários arquivos
# em um único arquivo. A principal vantagem de um utilitário como o tar está
# na transferência de arquivos. Devido à sobrecarga, a transferência de 100
# arquivos de 1 KB levará mais tempo do que a transferência de um arquivo de
# 100 KB. Usando o tar, você pode arquivar vários arquivos em um único
# arquivo, economizando tempo e largura de banda ao transferir o arquivo.
# Mas o tar não comprime arquivos. Se você usar o tar para combinar 100
# arquivos de 1 KB cada, o arquivo tar resultante provavelmente terá cerca
# de 100 KB. Para economizar ainda mais tempo e largura de banda,
# são utilizados utilitários de compactação. Essas ferramentas de compactação
# reduzirão o tamanho do arquivo tar resultante. XZ é uma dessas ferramentas
# de compressão e utiliza o algoritmo de compressão LZMA. É por isso que o
# arquivo tar.xz resultante em nosso cenário pode ser consideravelmente menor
# que 100 KB, digamos 50 KB.

#########################################

clear

# -------------------------------------------

echo -e "\n*** Abra o terminal onde está o arquivo a ser compactado. *** \n\nOBS: Para sair deste script tecle Ctrl+c"

sleep 2

# -------------------------------------------

echo ""

echo -e "\nConfere o 20 primeiros arquivos deste diretório... \n"

ls -t | head

echo ""

read -p "Digite o do arquivo tar.xz a ser criado.\
Ex. meu_arquivo.tar.xz : " FILE # armazena URL

echo -e "Você digitou: $FILE" # imprime a FILE

echo -e "\n1- Confere o 20 primeiros arquivos deste diretório... \n"

ls -tCF | head -21

echo ""

read -p "Digite titulo completo (com espaços entre eles)\
dos arquiv(os)/past(as) a ser(em) compactados : " ARQUIVOS

echo -e "Você digitou: $ARQUIVOS"

# -------------------------------------------

echo -e "\n\e[1mPara compactar em tar.xz digite um (1),\
descompactar digite dois (2)\e[0m\n"

while : # loop while
do # fechamento de do é done
read DIGITE # armazena digito 1 ou 2
case $DIGITE in # caso o digito seja...
# fechamento de case é esac

# --------------------------------------- #

1) # dígito 1 executa...

echo -e "Você digitou: $DIGITE, compactando... "

tar -cJf "$FILE" "$ARQUIVOS"

break # sai após executar comando
;;

# --------------------------------------- #

2) # dígito 2 executa...
echo -e "Você digitou $DIGITE, descompactando... "

tar -xf "$FILE" # comando 2

break # sai após executar comando
;;

# --------------------------------------- #

*)
echo -e "Desculpe eu só entendo 1 e 2." # se não for nem 1 nem 2...

;;
esac # fechamento de case e sai

# --------------------------------------- #

done # fechamento de do e acabou

# --------------------------------------- #

echo ""

echo -e "\n:2- Confere a lista de arquivos:\n"

sleep 2

ls -tCF | head -15

# --------------------------------------- #

echo ""

read -p "Para deletar o arquivo original Tecle Enter.\
Para sair sem deletar tecle Ctrl+c."

rm -f "$FILE"

# --------------------------------------- #

echo -e "\n:3- Confere a lista de arquivos:\n"

sleep 2

ls -tCF | head -15

# --------------------------------------- #

echo -e "\n\e[1;33;40m*** E tá tudo resolvido! ***\e[0m\n" # mensagem final

# --------------------------------------- #

# fim do script

Deixe um comentário