O comando TAR é bastante utilizado em sistemas Unix para unir vários diretórios e arquivos em um único arquivo. TAR, basicamente, é a sigla para “tape archiving” (lembre-se, o Unix – e o próprio Linux – é bem antigo). Podemos também combinar o TAR com o GZIP, de forma tal a comprimir o “pacote”.
Existem inúmeras maneiras de utilizar tanto o TAR quanto o GZIP, mas vamos agora dar a você uma dica rápida para unir e compactar todo o conteúdo de um diretório, no Linux (em servidores web rodando tal sistema operacional, por exemplo), utilizando TAR e GZIP.
Vamos aqui considerar um servidor Linux, o qual será acessado remotamente. Tudo o que você precisa fazer é acessar o mesmo através de algum cliente SSH e, então, acessar o diretório cujo conteúdo deseja “empacotar”. Digamos que você deseje o conteúdo da pasta “/home/usertest/public_html” (obviamente, você pode alterar o caminho, o diretório, conforme sua necessidade).
Na linha de comando, digite o seguinte, teclando <ENTER> ao final:
cd /home/usertest/public_html/
Você será, então, levado ao diretório desejado, e verá o seguinte (ou algo semelhante), no shell:
root@host [/home/usertest/public_html]#
Digite, então, o seguinte comando, também teclando <ENTER> ao final:
tar czf nomedoarquivo.tar.gz *
Não se esqueça de alterar “usertest” e “nomedoarquivo” pelo diretório e nome de arquivo corretos. Logo após o procedimento acima, um simples comando “ls” exibirá, na linha de comando, o arquivo “nomedoarquivo.tar.gz” recém gerado.
Exemplo de utilização
Através do comando acima, você pode compactar apenas o conteúdo de uma pasta, excluindo a raiz, digamos. Por exemplo, digamos que você possui um servidor com diversas contas/usuários. Nele, existe o usuário/conta “usertest” (conforme exemplo acima), e você deseja copiar apenas o conteúdo da pasta “public_html” desta conta (excluindo este primeiro nível, ou seja, “public_html”), para então descompactá-lo e/ou transferi-lo para outra pasta “public_html” respeitando a mesma hierarquia. Talvez para o mesmo usuário, em um outro servidor, em uma possível migração, etc.
Com o comando acima você consegue realizar esta operação perfeitamente, gerando um arquivo .tar.gz com todas as pastas, subpastas e arquivos existentes dentro da “public_html” citada, sem no entanto “trazer” esta pasta principal. Fácil, não? Esta dica também funciona caso você queira realizar backup de uma pasta, digamos.
Finalizando
E para finalizar, aí vai o comando necessário para descompactar o arquivo .tar.gz:
tar xvzf nomedoarquivo.tar.gz
Lembre-se de copiá-lo para o diretório correto, antes disso.