Use o seguinte one-liner:
tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
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).
Use o seguinte one-liner:
tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
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
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.
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.
Tags compression tar 7zip