Empacotamento com GNU tar
[cascardo/admin.git] / archive / empacotamento
1 Empacotamento de arquivos com GNU tar
2
3 O GNU tar é uma implementação do tar com extensões próprias. O tar é uma
4 ferramenta original da sétima edição do Unix da AT&T. Antes de se tornar
5 um padrão POSIX, vários fabricantes criaram suas próprias extensões,
6 incluindo o projeto GNU. Hoje em dia, o padrão para empacotamento é o
7 pax, extensão do tar padronizada pelo POSIX 2001.
8
9 Outras ferramentas livres que suportam o tar são star e bsdtar. Outros
10 softwares e formatos de empacotamento incluem ar, shar, cpio. Vamos nos
11 dedicar à ferramenta GNU tar nesta seção.
12
13 O objetivo do empacotador é armazenar vários arquivos em apenas um só.
14 Dentre as várias operações com um pacote, as principais são criar e
15 extrair. O GNU tar ainda permite as operações:
16
17 A   concatenar pacotes
18 c   criar pacote
19 d   comparar pacote com sistema de arquivos
20 r   anexar arquivos a um pacote
21 t   listar arquivos de um pacote
22 u   apenas anexar arquivos que são mais novos que no pacote
23 x   extrair arquivos de um pacote
24
25 Há ainda a opção --delete que permite remover arquivos de um pacote. No
26 entanto, essa opção não é apropriada para fitas. O nome tar vem de "Tape
27 ARchiver". Foi criado para permitir o armazenamento dos pacotes em
28 fitas, já que escrevia apenas sequencialmente e em blocos.
29
30 Há uma pequena diferença do GNU tar pras demais ferramentas GNU em
31 relação às opções. Em primeiro lugar, o primeiro conjunto de opções
32 curtas pode omitir o hífen inicial. Em segundo lugar, uma opção de
33 operação é obrigatória. Isso implica que sempre deve haver alguma opção
34 antes do primeiro parâmetro. Como em outras ferramentas GNU, opções que
35 requerem parâmetros devem ser seguidas por esses imediatamente.
36
37 A saída padrão é usada para gravar o pacote e a entrada padrão para ler
38 o pacote, a não ser que se use a opção -f, que requer um nome de arquivo
39 como parâmetro. Algumas outras opções:
40
41 -C    diretório onde extrair arquivos
42 -f    nome do pacote a criar, atualizar ou extrair
43 -j    filtrar usando bzip2 (para compressão/descompressão)
44 -v    verbosidade, lista arquivos processados
45 -x    filtrar usando gzip (para compressão/descompressão)
46
47 Exemplos
48
49 Para criar um pacote com os arquivos no diretório /bin:
50 tar c /bin > bin.tar
51 tar -c /bin > bin.tar
52 tar cf bin.tar /bin
53 tar -f bin.tar -c /bin
54 tar c /bin -f bin.tar
55
56 Para extrair os arquivos do pacote bin.tar no diretório corrente:
57 cat bin.tar | tar x
58 tar x < bin.tar
59 tar xf bin.tar
60 tar -x -f bin.tar
61 tar -xf bin.tar
62
63 Para extrair os arquivos do pacote bin.tar no diretório /bin:
64 tar -xf bin.tar -C /bin
65 tar C /bin -x < bin.tar
66
67 Para comprimir/descomprimir o pacote:
68 cat bin.tar.gz | gzip -cd | tar x
69 gunzip -c bin.tar.gz | tar x
70 tar xzf bin.tar.gz
71 tar cjf bin.tar.bz2 /bin
72 tar -cj /bin > bin.tar.bz2
73 tar c /bin | bzip2 -c > bin.tar.bz2
74
75 Para listar os arquivos em um pacote:
76 tar tjf bin.tar.bz2
77 cat bin.tar.gz | tar tz