Upload de arquivos maiores que 30mb via PHP

Uma coisa que poucas pessoas sabem é que via PHP é possível fazer download de um arquivo maior que o padrão “30mb”. porém isso implica em uma série de coisas, como lentidão para enviar os arquivos e tal mas localmente fica ótimo…

Bem, em primeira mão vamos configurar o php.ini ajustando alguns valores para que o mesmo funcione e também no httpd.conf do apache.

Lembrando que estuu no Fedora Core 9, mas creio que não tem divergencia para outros.

Editando o php.ini “/etc/php.ini”

Voce tem que configurar o php p/ aceitar limites maiores de upload. Vc
tem q configurar:

upload_max_filesize – eh a diretiva no php.ini que diz o tamanho do
maior arquivo a ser enviado via post p/ o php.
post_max_size – eh a diretiva que diz o tamanho total do post. Um post
“multipart” pode ter varios arquivos nele, entao esse tamanho tem que
ser maior que o upload_max_filesize
memory_limit – se o seu php for configurado com –enable-memory-limit,
voce tem que configurar essa diretiva p/ ser maior que o tamanho do
post_max_size, afinal o php vai colocar esse arquivo na memoria
durante o upload.

max_input_time – eh o tempo que o seu script fica esperando por um
dado vindo do cliente. Esse valor deve ser razoavelmente alto, caso vc
mande arquivos de varios MB.
max_execution_time – eh o tempo de execucao do seu script. Ele deve
ser maior que o max_input_time, p/ que seu script funcione a contento.

No apache tbm existe a configuracao LimitRequestBody, que eh
equivalente ao post_max_size. Caso essa configuracao nao exista, entao
nao existe limite, caso exista, configure ela igual ao post_max_size.

Espero ter ajuado… Valeu…

Entendendo e utilizando permissões no LINUX

As permissões são um dos aspectos mais importantes do Linux (na verdade, de todos os sistemas baseados em Unix). Elas são usadas para vários fins, mas servem principalmente para proteger o sistema e os arquivos dos usuários. Manipular as permissões é algo muito interessante, tanto quanto complexo. Mas tal complexidade não deve ser interpretada como dificuldade e sim como grande variedade de configurações, o que permite criar vários tipos de proteção de arquivos e diretórios.

Como você deve saber, somente o super-usuário (root) tem ações irrestritas no sistema, justamente por ser o usuário responsável pela configuração, administração e manutenção do Linux. Cabe a ele por exemplo, determinar o que cada usuário pode executar, criar, modificar, etc. Naturalmente, a forma usada para determinar o que o usuário pode fazer é a determinação de permissões. Este artigo visa explicar as configurações de permissões de arquivos e diretórios, assim como modificá-las.

Entendendo as permissões

drwx—— 2 wester …………. 512 Jan 29 23:30 .. Arquivos/
-rw-rw-r– 1 wester ……. 280232 Dec .. 16 22:41 notas.txt

As linhas acima representam um comando digitado (ls -l) para listar um diretório e suas permissões. O primeiro item que aparece na linha (drwx—– e -rw-rw-r-) é a forma usada para mostrar as permissões que o diretório Arquivos e o arquivo notas.txt têm. É esse item, que recebe o nome de string, que vamos estudar. Um ponto interessante de citar é que o Linux trata todos os diretórios como arquivo também, portanto, as permissões se aplicam de igual forma para ambos. Tais permissões podem ser divididas em quatro partes para indicar: tipo, proprietário, grupo e outras permissões. O primeiro caractere da string indica o tipo de arquivo: se for “d” representa um diretório, se for “-” equivale a um arquivo. Entretanto, outros caracteres podem aparecer, já que existem outros tipos de arquivo no Linux, conforme mostra a tabela abaixo:

d => diretório
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
– => arquivo normal

Repare agora que no restante da string temos 9 caracteres. Você já sabe o que significa o primeiro. Os demais são em 3 grupos de 3, cada um representado o proprietário, o grupo e todos os demais respectivamente. Pegando a linha 2 do exemplo (-rw-rw-r-) e dividindo a string em 3 partes, ficaria assim:

-rw => indicação de permissões do proprietário
-rw => permissões do grupo que o usuário pertence
-r- => permissões para os demais usuários

Vamos entender agora o que significa esses caracteres (r, w, x, -). Existem 3 tipos básicos de permissões: leitura, gravação e execução. Leitura permite aos usuários ler o conteúdo do arquivo mas não altera-lo. Gravação permite que os usuários alterem o arquivo. Execução, como o nome diz, permite que o usuário execute o arquivo, no caso de ser executável. Mas acontece que as permissões não funcionam isoladamente, ou seja, ou o usuário tem permissão de leitura ou de gravação ou de execução. As permissões funcionam em conjunto. Isso quer dizer que cada arquivo/diretório tem as 3 permissões, cabendo ao dono determinar qual dessas permissões é habilitada para os usuários ou não. Pode ser que uma determinada quantidade de usuários tenha permissão para alterar um arquivo, mas outros não. Daí a necessidade de se usar grupos. Neste caso, a permissão de gravação desse arquivo será dada ao grupo e todo usuário membro dele poderá alterar o arquivo.

É necessário ter um certo cuidado com as permissões. Por exemplo, do que adianta o usuário ter permissão de gravação se ele não tem permissão de leitura habilitada? Ele poderá ler o arquivo para poder modifica-lo? Não! De certo, isso tem utilidade em arquivos de log. Fazendo associação com as letras r, w, x e o caractere -, vamos entender cada uma:

r => significa permissão de leitura (read);
w => significa permissão de gravação (write);
x => significa permissão de execução (execution);
– => significa permissão desabilitada.

A ordem em que as permissões devem aparecer é rwx. Sendo assim, vamos entender as strings do nosso exemplo, dividindo-a em 4 partes:

Linha 1:
drwx—— 2 wester …………… 512 Jan 29 23:30 .. Arquivos/

é um diretório (d);
o proprietário pode altera-lo, grava-lo e executa-lo (rwx);
o grupo não pode altera-lo, grava-lo e nem executa-lo (—);
os demais usuários não podem altera-lo, grava-lo e nem executa-lo (—).

Linha 2:
-rw-rw-r– 1 wester ………. 280232 Dec .. 16 22:41 notas.txt

é um arquivo (-);
o proprietário pode altera-lo, grava-lo, mas não executável. Como este arquivo não é executável, a permissão de execução aparece desabilitada (rw-);
o grupo tem permissões idênticas ao proprietário (rw-);
o usuário somente tem permissão de ler o arquivo, não pode altera-lo (r–)

A tabela abaixo mostra as permissões mais comuns:

— => nenhuma permissão;
r– => permissão de leitura;
r-x => leitura e execução;
rw- => leitura e gravação;
rwx => leitura, gravação e execução.

Configurando permissões com chmod

Acima, você dever tido pelo menos uma noção do que são permissões e sua importância no Linux. Chegou a hora de aprender a configurar permissões e isso é feito através do comando chmod (de change mode). Um detalhe interessante deste comando é que você pode configurar permissões de duas maneiras: simbolicamente e numericamente. Primeiramente veremos o método simbólico.

Para ter uma visão mais clara da forma simbólica com o chmod, imagine que tais símbolos se encontram em duas listas, e a combinação deles gera a permissão:

Lista 1
Símbolo
u => usuário
g => grupo
O (letra o maiúscula) => outro
a => totos

Lista 2
Símbolo
r => leitura
w => gravação
x => execução

Para poder combinar os símbolos destas duas listas, usam-se os operadores:

+ (sinal de adição) => adicionar permissão
– (sinal de subtração) => remover permissão
= (sinal de igualdade) => definir permissão

Para mostrar como essa combinação é feita, vamos supor que você deseje adicionar permissão de gravação no arquivo teste.old para um usuário. Então o comando a ser digitado será:

chmod u+w teste.old

O “u” indica que a permissão será dada a um usuário, o sinal de adição (+) indica que está sendo adicionada a permissão e “w” indica que a permissão que está sendo dada é de gravação.

Caso você queira dar permissões de leitura e execução ao seu grupo, o comando será:

chmod g+rw teste.old

Agora, vamos supor que o arquivo teste.old deverá estar com todas as permissões disponíveis para o grupo. Podemos usar então:

chmod g=rwx teste.old

Dica: crie arquivos e diretórios e teste a combinação de permissões com chmod. Isso lhe ajudará muito no entendimento deste conceito.

Usando chmod com o método numérico

Usar o chmod com valores numéricos é algo bastante prático. Em vez de usar letras como símbolos para cada permissão, usam-se números. Se determinada permissão é habilitada, atribui-se valor 1, caso contrário, atribui-se valor 0. Sendo assim, a string de permissões r-xr—– na forma numérica fica 101100000. Essa combinação de 1 e 0 é um número binário. Mas temos ainda que acrescentar a forma decimal (ou seja, números de 0 a 9). Para isso, observe a tabela abaixo:

Permissão Binário Decimal
000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7

Se você não conhece o sistema binário deve estar se perguntando o que esse “monte” de 0 e 1 tem a ver com os números de 0 a 7. Como o sistema binário somente trabalha com os números 0 e 1 (decimal trabalha com os números de 0 a 9, ou seja, é o sistema de numeração que utilizamos no nosso dia-a-dia), ele precisa de uma seqüência para representar os valores. Sendo assim, na tabela acima, a coluna Binário mostra como são os valores binários dos números de 0 a 7 do sistema decimal.

Chegou a hora então de relacionar a explicação do parágrafo acima com a coluna Permissão. Para exemplificar, vamos utilizar a permissão rw-, cujo valor em binário é 110, que por sua vez, em decimal corresponde ao número 6. Então, em vez de usar rw- ou 110 para criar a permissão, simplesmente usa-se o número 6. Repare então que com o método numérico, usamos somente um dígito para representar uma permissão, ao invés de três. Com isso a string de permissões r–r–r– pode ser representa por 444, pois r– em decimal é igual a quatro. Observe o exemplo abaixo:

chmod 600 notas.txt

Acima, estão sendo dadas as permissões rw——- ao arquivo notas.txt, pois 6 equivale a rw- e 0 equivale a —. Como zero aparece duas vezes, forma-se então o valor 600. Faça o comando acima com um arquivo de teste e depois digite ls- l notas.txt e veja o que aparece (notas.txt deve ser substituído pelo arquivo que você está usando para teste). A tabela abaixo mostra as configurações de permissões mais usadas:

As três últimas permissões da tabela são freqüentemente usadas para programas e diretórios.

Como você viu, é muito mais prático utilizar o chmod com método numérico. Mas você pode ter ficado confuso com todo esse esquema de permissão. No entanto, talvez isso não tenha sido por causa da minha possível ineficiência ao explicar permissões nesta coluna. A questão é que nos sistemas baseados em Unix, permissões são um dos aspectos mais complexos existentes. Tal complexidade é equivalente à eficiência do uso de permissões. Por isso, a melhor maneira de entender as permissões é treinando. Sendo assim, ao trabalho! Treine, crie permissões e veja seus resultados. Bom aprendizado!

Fonte: www.infowester.com.br

——— 000
r——– 400
r–r–r– 444
rw——- 600
rw-r–r– 644
rw-rw-r– 666
rwx—— 700
rwxr-x— 750
rwxr-xr-x 755
rwxrwxrwx 777

Arquivos Compactados, compactando-os.. Tar – tar.gz bz bz2 e por ai vai

Antigamente… num passado não muito distante… você abria um certo programa aí chamado Winzip para compactar os seus arquivos e assim reduzir um pouco os seus kbs… e enviá-los tudo de uma vez só. A mesma coisa era para abrir. E ai se não tivesse esse programinha! Quantos .zip você deixou de verificar por falta de conhecimento… (o duro era quando, ainda por cima, tinha vírus…)

Esse mundo de trevas… acaba aqui.

Pois agora você irá conhecer quem são as figurinhas básicas de compactação do Linux. Vamos nos ater em explicar as mais conhecidas formas de empacotamento e compactação, como também as formas de descompactar esses arquivos. 🙂

Eis aqui as nossas estrelinhas da tarde:

  • tar
  • tar + gzip
  • tar + bzip2
  • tar + compress

Comando File

Antes de aprender a compactar e descompactar arquivos, é necessário que você saiba que tipo de arquivo você está lidando. Para isso, usamos o comando “file”. Ele te permite conhecer algumas informações importantes sobre o arquivo. Ele diz mais além: qual é o tipo de arquivo, se é um arquivo texto, um arquivo binário ou um arquivo compactado e com qual compactação.

Veja um exemplo:

[girls@girls girls_mod]$ file backup.tar.bz2
backup.tar.bz2: bzip2 compressed data, block size = 900k
[girls@girls moderator]$ file comandos.txt
comandos.txt: ISO-8859 text, with very long lines

Para listar todos os tipos de arquivos em seu diretório, digite o comando file seguido por um asterisco (*). Veja um exemplo:

[girls@girls moderator]$ file *
arquivo.tar.bz2: bzip2 compressed data, block size = 900k
backup.tar: GNU tar archive
backup.tar.gz: gzip compressed data, from Unix
comandos.txt: ISO-8859 text, with very long lines
comandos1.txt: ISO-8859 text
moderator.tar.bz2: gzip compressed data, from Unix
modotexto_compactadores.txt: ISO-8859 text, with very long lines
restante.txt: ISO-8859 text, with very long lines
similares.txt: ISO-8859 text
teste.txt: ASCII text
teste_moderator.tar.bz2: bzip2 compressed data, block size = 900k
teste_moderator.tar.gz: bzip2 compressed data, block size = 900k
[girls@girls moderator]$

Tar

Taí uma sigla que você vai ouvir (e ver) falar muito no linux: o compactador TAR (acrônimo para “tape archiver”). Este comando por si só não faz a compactação dos arquivos, mas sim apenas “empacota”, pois ele utiliza recursos tanto do gzip, bzip2 e compress. Por isso, foi criado um parâmetro no TAR para que ambos os programas possam trabalhar juntos e fazer o que é necessário. Normalmente usa a extensão.tar nos seus arquivos. Um arquivo tar comprimido com gzip normalmente é nomeado com extensão .tar.gz ou .tgz e se comprimido com bzip2 normalmente se usa .tar.bz2 ou .tz2. Se ele é comprimido com o compress, utiliza a extensão tar.Z .
Resumindo: O empacotamento tar é ideal para pacotes de arquivos que você irá mexer posteriormente (inserir, renomear, deletar e atualizar). O TAR também consegue gravar a propriedade e as permissões dos arquivos. Ainda, consegue manter a estrutura de diretórios original (se houve compactação com diretórios), assim como as ligações diretas e simbólicas. Um exemplo bom para entender é um backup básico daquela discografia do Pink Floyd que há anos você está montando. Imagine você se por acaso aparecer mais algumas mp3 que precisam estar inseridas nesse backup. O tar permite que você altere o conteúdo do empacotamento, sem precisar descompactar e recompactar novamente (como acontece no caso dos tar.”alguma coisa”). Isso poupa trabalho para você (pensa bem o quanto você vai demorar para descompactar um arquivo imenso como deveria ser esse de mp3). Por isso, se for reunir arquivos importantes, que estão sempre sendo atualizados, use o empacotamento tar.
Vamos dar um exemplo:

[girls@girls musicas]$ tar cvf mp3.tar .
./
./confortably_numb.mp3
./money.mp3
./on_the_turning_away.mp3
./lost_words.mp3
./mother.mp3
./the_wall.mp3
./in_the_flesh.mp3
./dogs.mp3
./nobody_home.mp3
./stop.mp3
./goodbye_blue_sky.mp3
tar: ./mp3.tar é o arquivo; não será arquivado
[girls@girls musicas]$ tar tvf mp3.tar
drwxrwxr-x girls/girls 0 2005-05-12 09:00:14 ./
-rw-rw-r-- girls/girls 37681 2005-05-07 10:31:21 ./confortably_numb.mp3
-rw-rw-r-- girls/girls 87977 2005-05-07 10:31:45 ./money.mp3
-rw-rw-r-- girls/girls 62965 2005-05-07 10:31:33 ./lost_words.mp3
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 ./mother.mp3
-rw-rw-r-- girls/girls 58651 2005-05-07 10:46:54 ./the_wall.mp3
-rw-rw-r-- girls/girls 50840 2005-05-07 10:32:24 ./in_the_flesh.mp3
-rw-rw-r-- girls/girls 46935 2005-05-07 10:32:35 ./dogs.mp3
-rw-rw-r-- girls/girls 378301 2005-05-11 18:31:11 ./nobody_home.mp3
-rw-rw-r-- girls/girls 755070 2005-05-11 18:31:29 ./stop.mp3
-rw-rw-r-- girls/girls 81920 2005-05-11 18:40:09 ./goodbye_blue_sky.mp3
[girls@girls musicas]$

Viu só como é simples? 🙂

(Parece que escutei você dizendo… “bah, não entendi (aqui você coloca o palavrão que preferir) nenhuma!”)

Então vamos lá, amiguinha… analisando os comandos dados no shell veremos que:

[girls@girls musicas]$ tar cvf mp3.tar .

Isso significa que você está criando um empacotamento tar com as seguintes solicitações:

c = criando
v = listando
f = dando o nome que você deseja pro arquivo.tar

Depois das solicitações, você está dando o nome para o arquivo (no caso, mp3.tar) e o ponto final significa que você não está especificando arquivo nenhum e sim pedindo para compactar toda a pasta que você se encontra (no caso, a “musicas”).

[girls@girls musicas]$ tar tvf mp3.tar

Isso significa que você está pedindo para:

t = visualizar
v = listar
f = informando o nome do arquivo.tar que deseja visualizar.

Simplesmente para ler o que você acabou de empacotar 🙂 Viu que ele te listou todos os arquivos que estão dentro do mp3.tar? :} Fácil, não?

E se eu não quiser criar um tar com toda a pasta e sim somente com duas planilhas importantes que eu uso para controlar as minhas finanças (ou seja, sempre atualizando)?

[girls@girls arquivos]$ tar cvf planilhas.tar contas.xls gastos.xls
contas.xls
gastos.xls
[girls@girls arquivos]$ tar tvf planilhas.tar
-rw-rw-r-- girls/girls 46935 2005-05-07 10:32:35 contas.xls
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 gastos.xls
[girls@girls arquivos]$

Viu só? É só você colocar o nome dos arquivos que deseja, posteriormente à solicitação do comando tar. Simples! 🙂

Decore essas opções do comando tar (em alguns parâmetros o uso de ‘-‘ hífen não é necessário).

-A = Anexa os arquivos tar a um arquivo.
-c = Cria um novo arquivo.
-C = Especifica o diretório dos arquivos a serem armazenados.
-d = Encontra as diferenças entre um tar e o sistema de arquivos.
-delete = Apaga arquivos
-f = Indica o nome do arquivo final (que será o arquivo compactado).
-p = Mantém as permissões originais do(s) arquivo(s);
-r = Anexa arquivos ao final do arquivo tar
-t = Lista o conteúdo do arquivo.
-u = Adiciona somente arquivos com data mais recente que a do arquivo que estiver no arquivo compactado.
-x = Descompacta o arquivo.
-v = Mostra os arquivos que estão sendo processados.
-j = Filtra o arquivo a ser processado com bzip2/bunzip2. Necessário quando o arquivo é compactado com tar + bzip2.
-z = Filtra o arquivo a ser processado com gzip/gunzip. Necessário quando o arquivo é compactado com tar + gzip.
-Z = Filtra o arquivo a ser processado com compress. Necessário quando o arquivo é compactado com tar + compress.

Mas há outras opções que não vamos listar aqui para não te confundir. Digite o comando (man tar) dentro do shell para olhar as outras opções. (Caso você não tenha o man instalado, use o tar –help). Crie um arquivo .tar e teste bastante as opções. Assim você poderá entender melhor todos os parâmetros do tar.

Tar + Gzip

Conforme já foi dito nesse artigo, o TAR sozinho não faz verão. Ele só empacota, mas não compacta. Para isso, foi criado parâmetros para que o houvesse interação direta entre ele e os compactadores Gzip, Bzip2 e Compress. De uma vez só, você irá empacotar e compactar os arquivos que você deseja. Mas para quê fazer isso? Simples…
Vamos supor que você queira fazer um arquivo comprimido (de alguns hentais maravilhosos que você salvou) com a intenção de enviar para um pretê seu (sabe se lá com qual intenção…). Todas as suas fotos estão localizadas num diretório que se chama “girls_mod”. Indo pro shell, faríamos o seguinte…

[girls@girls girls_mod]$ tar cvfz hentais.tar.gz .
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 680
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 329611 Mai 12 16:25 hentais.tar.gz
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif
[girls@girls girls_mod]$

Tá certo… mas o que significa “cvfz”? Significa que você está criando (c), mandando listar os arquivos que estão sendo incluídos (v), dando o nome que deseja pro arquivo compactado (f) e determinando qual será o método de compactação (z). O “z” significa que você está criando uma compactação com o gzip.
Ah… e se é você que recebe um arquivo desses… (e fica doidinha pra ver ele, claro)… como fazer para descompactar? Vamos pro shell…

[girls@girls girls_mod]$ tar zxvf hentais.tar.gz
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 680
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 329611 Mai 13 15:31 hentais.tar.gz
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif
[girls@girls girls_mod]$

Qual foi a mágica? Analisando, passo-a-passo, os comandos dados no shell, veremos que:

[girls@girls girls_mod]$ tar zxvf hentais.tar.gz
z (gzip)
x (extrair)
v (verbose)
f (nome do arquivo)

Se você não deseja descompactar o arquivo na pasta que está, é só usar o parâmetro -C e indicar o caminho da pasta que deseja:

[girls@girls girls_mod]$ tar zxvf hentais.tar.gz -C /home/girls/moderator/fotos/
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$

Se você entrar no diretório indicado, verá que os arquivos foram para lá 🙂 Simples! Caso você deseje criar arquivos.tgz (que é a outra forma de usar um tar+gzip), use:
[girls@girls girls_mod]$ tar cvfz hentais.tgz (aqui você coloca se quer copiar toda a pasta ou cita os arquivos que quer compactar).
E para descompactar:

[girls@girls girls_mod]$ tar zxvf hentais.tgz

Tar + Bzip2

Criando com o Bzip2 (que tem uma compactação mais demorada, mas que fica menor do que uma tar.gz), faremos o seguinte:

[girls@girls girls_mod]$ tar cvfj hentais.tar.bz2 .
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ tar tvfj hentais.tar.bz2
drwxrwxr-x girls/girls 0 2005-05-13 16:02:21 ./
-rw-rw-r-- girls/girls 87977 2005-05-07 10:31:45 ./anna_2.gif
-rw-rw-r-- girls/girls 62965 2005-05-07 10:31:33 ./make.gif
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 ./lips.gif
-rw-rw-r-- girls/girls 58651 2005-05-07 10:46:54 ./antony.gif
-rw-rw-r-- girls/girls 50840 2005-05-07 10:32:24 ./dee_dee.gif
-rw-rw-r-- girls/girls 37681 2005-05-07 10:31:21 ./anna_1.gif
[girls@girls girls_mod]$

Só recapitulando: c (criando), v (verbose), f (dando o nome para a compactação) e j (compactação com o bzip2).
E para descompactar?

[girls@girls girls_mod]$ tar jxvf hentais.tar.bz2
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 680
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 331194 Mai 13 16:05 hentais.tar.bz2
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif
[girls@girls girls_mod]$

A mesma coisa será se você quiser descompactar em alguma outra pasta que não seja a que você está… use o parâmetro -C e o caminho do diretório.
E se você quiser criar um arquivo.tz2?

[girls@girls girls_mod]$ tar cvfj hentais.tz2 (aqui você coloca se quer copiar toda a pasta ou cita os arquivos que quer compactar).

E descompactar?

[girls@girls girls_mod]$ tar jxvf hentais.tz2

Tar + Compress

Mas e se quiser com o Compress? Embora pouco usado esse tipo de compressão, não custa nada explicar né?

[girls@girls girls_mod]$ tar cvfZ hentais.tar.Z .
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
tar: Processo filho terminou com estado 2
tar: Erro só assinalado no fim da execução
[girls@girls girls_mod]$ tar tvfZ hentais.tar.Z
drwxrwxr-x girls/girls 0 2005-05-13 15:16:18 ./
-rw-rw-r-- girls/girls 87977 2005-05-07 10:31:45 ./anna_2.gif
-rw-rw-r-- girls/girls 62965 2005-05-07 10:31:33 ./make.gif
-rw-rw-r-- girls/girls 31731 2005-05-07 10:26:02 ./lips.gif
-rw-rw-r-- girls/girls 58651 2005-05-07 10:46:54 ./antony.gif
-rw-rw-r-- girls/girls 50840 2005-05-07 10:32:24 ./dee_dee.gif
-rw-rw-r-- girls/girls 37681 2005-05-07 10:31:21 ./anna_1.gif
[girls@girls girls_mod]$

Como já foi explicado, repare no comando e nos parâmetros. Para criar um tar.Z, utilize o parâmetro (Z) em letra MAIÚSCULA.
Descompactando:

[girls@girls girls_mod]$ tar -Zxvf hentais.tar.Z
./
./anna_2.gif
./make.gif
./lips.gif
./antony.gif
./dee_dee.gif
./anna_1.gif
[girls@girls girls_mod]$ ls -l
total 764
-rw-rw-r-- 1 girls girls 37681 Mai 7 10:31 anna_1.gif
-rw-rw-r-- 1 girls girls 87977 Mai 7 10:31 anna_2.gif
-rw-rw-r-- 1 girls girls 58651 Mai 7 10:46 antony.gif
-rw-rw-r-- 1 girls girls 50840 Mai 7 10:32 dee_dee.gif
-rw-rw-r-- 1 girls girls 415607 Mai 13 15:17 hentais.tar.Z
-rw-rw-r-- 1 girls girls 31731 Mai 7 10:26 lips.gif
-rw-rw-r-- 1 girls girls 62965 Mai 7 10:31 make.gif 
[girls@girls girls_mod]$

Sempre repare no Z maiúsculo senão vai dar ZEBRA! 😉
Crie arquivos, compacte e descompacte… faça testes. Só assim você irá entender perfeitamente o que estamos lhe dizendo 😉 São comandos simples, mas que requerem muito treino para serem compreendidos… por isso, treine bastante 😛
O próximo artigo também falará de compactação. Ou acha que o mundo só gira em torno do umbigo do Tar? :}

Elaborado por – Bios, Ivy e Sukkubus (Girls_Moderator)

Base de pesquisa: http://www.conectiva.com/doc/livros/online/10.0/usuario/pt_BR/ch08s05.html