Confusão entre arquivamento e compactação?

4

Estou confuso sobre arquivamento e compactação e vou escrever o que acho correto.

Aqui estão os comandos que eu quero entender melhor:

tar –c file > file.tar
tar –cf file.tar file // this command and the previous one are about the same

Eu acho que os comandos anteriores apenas criam uma espécie de pasta comum (arquivo) na qual temos os arquivos exatos que tínhamos antes de executar o comando de arquivamento (o tamanho não é reduzido de forma alguma), A única diferença é que o terceiro um irá produzir um arquivo com .gz em vez de .tar.

Para reduzir o tamanho do arquivo (compactá-lo), precisamos usar:

tar -cjf file.tar.bz2 file
tar –cJf file.tar.xz file

gzip file.tar // it’ll create a compressed file called file.tar.gz
tar -cz file  > file.tar.gz 

A maneira que eu vejo é que, se a extensão for .gz, .bz2 ou .xz, ela é compactada e, se estiver, .tar será arquivada. Isso está correto?

    
por engineering student 08.12.2015 / 19:46

2 respostas

5

Acho que este responde à sua pergunta: link

Para confirmar o que você pensa: o tar simplesmente coloca o arquivo em um arquivo sem nenhuma compactação. São os flags de compressão que você pode usar para fazer o tar usar um tipo de compressão ao criar o arquivo.

Além disso, as extensões de arquivo são digitadas manualmente, então você pode ser enganado assim: tar -cz file > file.tar.bz2 (quando você deveria ter usado .tar.gz)

Se você quiser extrair este arquivo mais tarde, você se enganará pensando que usou a compactação gzip, então saiba o que está fazendo ou documente em algum lugar o que você fez.

    
por Dino Hensen 08.12.2015 / 20:04
2

'tar' significa literalmente arquivo de fita e armazena e extrai arquivos de um arquivo de fita (ou disco). tar suporta um grande número de programas de compactação, como gzip, bzip2, lzip, lzma, lzop, xz e compressa tradicional

Os comandos tar devem começar com uma função como

[-] A --catenate --concatenate | c --create | d --diff --compare |
         --delete | r --append | t --list | --test-label | u --update | x
         --extract --get [options] [pathname ...]

A opção -a pode ser usada para autodetectar a compactação desejada do sufixo (extensão) do arquivo que está sendo criado. O tar deve autodetectar o tipo de compactação e agir de acordo com a extração sem a necessidade de informações específicas. Ele só recorrerá ao sufixo para determinação de tipo se a verificação de assinatura falhar. Para muito mais sobre tar , emita o comando man tar e para saber mais especificamente sobre compactação de tar, consulte: link

Existem várias opções que podem modificar os resultados. tar permite a adição e a remoção A extensão não indica o tipo de arquivo. Por exemplo, eu vi arquivos de imagem de um sistema Windows com uma extensão de .jpg que na verdade eram .gif. Para descobrir o tipo de arquivo, abra um terminal com Ctrl Alt T navegue até o diretório com o arquivo em questão e emita o comando file filename Aqui está um exemplo de saída de um arquivo compactado gzip:

$ file wireless-info.tar.gz 
wireless-info.tar.gz: gzip compressed data, from Unix, last modified: Thu Apr 23 07:45:20 2015

A alteração da extensão não altera a saída de file , tornando-a uma maneira confiável de determinar o tipo de arquivo, mesmo em arquivos que você não possui e não possui anotações. Aqui está um exemplo depois de renomear o arquivo anterior e remover o .gz ...

$ file wireless-info.tar
wireless-info.tar: gzip compressed data, from Unix, last modified: Thu Apr 23 07:45:20 2015

Para saber mais sobre file e como funciona, envie o comando man file

Fontes: Experiência e & amp; link

    
por Elder Geek 08.12.2015 / 20:17