O tar na verdade comprime os arquivos ou simplesmente os agrupa?

33

Eu geralmente presumo que tar era um utilitário de compactação, mas não tenho certeza se ele realmente compacta arquivos, ou é como um arquivo ISO, um arquivo para armazenar arquivos?

    
por TheDoctor 29.04.2014 / 23:29

4 respostas

48

O Tar é uma ferramenta de arquivamento (Tape ARchive), ele apenas coleta arquivos e seus metadados juntos e produz um arquivo. Se você quiser comprimir esse arquivo mais tarde, você pode usar o gzip / bzip2 / xz. Por conveniência, o tar fornece argumentos para compactar o arquivo automaticamente para você. Consulte a página man tar para obter mais detalhes.

    
por 29.04.2014 / 23:33
15

tar produz arquivos; a compactação é uma funcionalidade separada. No entanto tar sozinho pode reduzir o uso de espaço quando usado em um grande número de arquivos pequenos que são menores que o tamanho do cluster do sistema de arquivos. Se um sistema de arquivos usa clusters de 1kb, até mesmo um arquivo que contenha um único byte consumirá 1kb (mais um inode). Um tar archive não tem essa sobrecarga.

BTW, um arquivo ISO não é realmente "um arquivo para armazenar arquivos" - é na verdade uma imagem de um sistema de arquivos inteiro (originalmente projetado para ser usado em CDs) e sua estrutura é consideravelmente mais complexa.

    
por 30.04.2014 / 01:02
2

O comando original do UNIX não compactou os arquivos. Como foi mencionado em um comentário, o Solaris tar não é compactado. Nem HP-UX, nem AIX, FWIW. Por convenção, os arquivos descompactados terminam em .tar .

Com o GNU / Linux, você obtém o tar GNU. (Você pode instalar o GNU tar em outros sistemas UNIX.) Por padrão, ele não compacta; no entanto, ele faz compactar o arquivo resultante com gzip (também pelo GNU) se você fornecer -z . O sufixo convencional para arquivos gzipados é .gz , então você verá freqüentemente tarballs (gírias para um arquivo tar, geralmente implicando que ele foi compactado) que terminam em .tar.gz . Essa conclusão implica que o tar foi executado, seguido por gzip, por ex. %código%. Você também encontrará arquivos que terminam em tar cf - .|gzip -9v > archive.tar.gz , por exemplo. .tgz .

Edit: www.linfo.org/tar.html me lembrou que o GNU tar suporta muito mais funcionalidade do que simplesmente compactar com gzip, e me lembrou que os sufixos são mais do que simples convenções. Eles têm semântica integrada. Ele também suporta bzip2 ( tar czf archive.tgz . para -j ) e compactação antiga ( .bz2 para -Z ). Então olhei para a página man e fui lembrado de que .Z mapeia automaticamente o método de compactação desejado com base no sufixo.

Um outro nit. Como diz a página man tar do Linux, o GNU produz páginas de informação, não man pages, então para aprender tudo sobre o GNU tar, execute -a .

    
por 06.08.2015 / 21:27
1

O utilitário tar não é compactado até que você dê argumentos para fazer isso [tar -z file name].

    
por 30.04.2014 / 16:38