Como eu crio o arquivo tar.7z a partir da linha de comando?

18

Eu gostaria de atualizar minha lição de casa do ano passado. Como tar e zip toda a pasta da linha de comando Ubuntu (eu não tenho GUI).

    
por alphanumerical74 26.05.2013 / 03:04

4 respostas

22

Use o seguinte one-liner:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
    
por ortang 26.05.2013 / 12:02
9

Leia man tar . Oferece:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

Ou, se nenhum deles for adequado para você, e você tiver um programa de compactação que leia stdin , você poderá:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

Note que estou escrevendo a saída em outro lugar que não seja $HOME (o backup em um diretório que você está fazendo backup leva ao crescimento irrestrito de arquivos).

Ou você pode ler man 7z - parece que você pode fazer

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 
    
por waltinator 26.05.2013 / 03:29
6

não é uma boa idéia comprimir diretamente com 7z spcially em sistemas unix / linux: 7z não preserva permissões e / ou informações de usuário / grupo . Então: primeiro tar e depois comprimir.

Conforme relatado na página wiki 7zip em Google :

  

Limitações

     

O formato 7z não armazena permissões do sistema de arquivos (como UNIX   permissões de proprietário / grupo ou ACLs NTFS) e, portanto, podem ser inadequadas   para fins de backup / arquivamento. Uma solução alternativa em sistemas semelhantes ao UNIX para   isso é converter dados em um fluxo de bits antes de compactar com 7z.

    
por Giuseppe Curto 03.05.2015 / 08:09
2

Eu sugiro que você use:

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

para aumentar drasticamente a velocidade.

Tem a vantagem de usar o lzma2 ( -m0=lzma2 ) (que utiliza o máximo de núcleos disponíveis no sistema e a predefinição de "compactação rápida" ( -mx=3 ), que é basicamente rápida e boa o suficiente. Note que o LZMA2 não está apenas utilizando todos os núcleos na compressão, mas também na descompressão.

    
por vordhosbn 01.06.2016 / 14:13