Linux - Compactando e Restaurando Arquivos
Uma parte essencial do Linux são os comandos para compactar e arquivar arquivos. Vamos examinar algumas dessas ferramentas.
gunzip e gzip
Os comandos gunzip
(GNU Unzip) e gzip (GNU Zip) são usados para compactar e restaurar arquivos. O comando gzip
compacta arquivos, criando um arquivo com extensão .gz
, além de poder restaurar o arquivo original. Já o comando gunzip
é utilizado apenas para restaurar arquivos .gz
.
A sintaxe básica do comando gzip
é:
gzip [OPÇÃO]... [ARQUIVO]...
O comando aceita um conjunto de opções e uma lista de arquivos ou diretórios para compactação ou restauração. Por exemplo:
gzip book.pdf
Nesse caso, o arquivo "book.pdf" será compactado. Por padrão, o arquivo original é removido e substituído pelo arquivo compactado com extensão .gz
, resultando em "book.pdf.gz".
Também é possível compactar vários arquivos de uma vez:
gzip book.pdf image.png
Cada arquivo será compactado individualmente.
Para manter o arquivo original, use a opção -k
:
gzip -k book.pdf
O gzip
também oferece várias outras opções úteis, incluindo:
-d, --decompress
: descompactar o arquivo-l, --list
: listar os arquivos e diretórios compactados-r, --recursive
: compactar o conteúdo dos diretórios recursivamente-1, --fast
: compactação rápida (menos eficiente em termos de tamanho)-9, --best
: compactação máxima (mais eficiente em termos de tamanho, mas mais lenta)
Por exemplo, para visualizar informações sobre o arquivo compactado usando a opção -l
:
gzip -l book.pdf.gz
A saída será algo como:
compressed uncompressed ratio uncompressed_name 10642132 11773659 9.6% /home/programicio/book.pdf
Para restaurar o arquivo compactado "book.pdf.gz":
gzip -d book.pdf.gz
O arquivo original será removido após a descompactação. Para manter o arquivo original, use a opção -k
:
Também é possível descompactar usando o comando gunzip
, apenas especificando o nome do arquivo. Se o arquivo já existir, o comando perguntará se deve sobrescrever:
gunzip -k book.pdf.gz gzip: /home/programicio/book.pdf already exists; do you wish to overwrite (y or n)? y
Por padrão, gunzip
também remove o arquivo compactado após a descompactação. Para evitar isso, use a opção -k
.
bzip2 e bunzip2
O comando bzip2
é utilizado para compactar arquivos usando o algoritmo de compressão Burrows-Wheeler com codificação Huffman. O comando bunzip2
é usado para restaurar arquivos compactados pelo bzip2
. Os arquivos gerados possuem a extensão .bz2
. O bzip2
costuma ser mais eficiente que o gzip
, criando arquivos cerca de 10% menores.
O comando bzip2
aceita um conjunto de opções e arquivos para compactação. As principais opções são:
-d, --decompress
: realiza a descompactação-z, --compress
: realiza a compactação-v, --verbose
: exibe um resumo da operação-k, --keep
: mantém os arquivos originais-f, --force
: sobrescreve arquivos existentes-t, --test
: verifica a integridade do arquivo compactado-1 .. -9
: define o nível de compactação, onde 1 é mais rápido com maior tamanho, e 9 é mais lento com menor tamanho--fast
: equivalente a-1
--best
: equivalente a-9
Por exemplo, para compactar dois arquivos:
bzip2 -k book.pdf image.png
Aqui, os arquivos "book.pdf" e "image.png" serão compactados individualmente, resultando em "book.pdf.bz2" e "image.png.bz2". Por padrão, os arquivos originais são removidos. Para mantê-los, use a opção -k
.
Para obter um resumo detalhado da compactação, use a opção -v
:
bzip2 -v book.pdf image.png
Saída esperada:
book.pdf: 1.098:1, 7.287 bits/byte, 8.91% saved, 11773659 in, 10724549 out. image.png: 1.079:1, 7.413 bits/byte, 7.33% saved, 177489 in, 164473 out.
Para restaurar arquivos compactados:
bzip2 -d -v book.pdf.bz2 image.png.bz2
O comando bunzip2
também é usado para restaurar arquivos compactados com bzip2
. Ao descompactar, o arquivo original é restaurado com o mesmo nome, sem a extensão .bz2
. O bunzip2
pode também descompactar arquivos criados pelo gzip
.
Por exemplo:
bunzip2 book.pdf.bz2 image.png.bz2
xz
O xz
é uma ferramenta de linha de comando usada para compactar e descompactar dados. Baseia-se no algoritmo Lempel-Ziv-Markov (LZMA), conhecido por sua alta taxa de compressão e baixo uso de memória. O xz
é utilizado para criar arquivos compactados de grandes arquivos e diretórios, especialmente em sistemas Linux. Ele também é usado para compactar o kernel Linux durante a instalação, proporcionando uma redução significativa do tamanho do arquivo, mantendo a integridade dos dados originais.
A sintaxe básica do comando é:
xz [OPÇÃO]... [ARQUIVO]...
O comando aceita as seguintes opções:
-z, --compress
: compacta arquivos-d, --decompress
: descompacta arquivos-t, --test
: verifica a integridade do arquivo compactado-l, --list
: exibe informações sobre os arquivos no arquivo compactado-k, --keep
: mantém os arquivos originais-f, --force
: força a sobrescrita do arquivo de saída-0...-9
: define o nível de compressão; o padrão é 6-e, --extreme
: tenta melhorar a compressão usando mais tempo de CPU-T, --threads=NUM
: define o número máximo de threads; o padrão é 1-v, --verbose
: exibe um resumo detalhado da operação
Por exemplo, para compactar arquivos:
xz -v book.pdf image.png
Saída esperada:
book.pdf (1/2) 100 % 9.9 MiB / 11.2 MiB = 0.885 0:02 image.png (2/2) 100 % 157.6 KiB / 173.3 KiB = 0.909
Isso resulta em arquivos "book.pdf.xz" e "image.png.xz".
Para descompactar arquivos, use a opção -d:
xz -d -v book.pdf.xz image.png.xz