A única solução que conheço é pixz ( sudo apt-get install pixz
) , uma variante de xz usando um codificador bloqueado que permite rápido acesso aleatório / indexação. Além disso, é um método paralelo que usa vários núcleos para compactação.
Citando os documentos:
Os XZ Utils existentes ( link ) fornecem excelentes compactação no formato de arquivo .xz, mas eles têm dois problemas:
- Eles são single-threaded, enquanto a maioria dos usuários hoje em dia tem computadores com vários núcleos.
- Os arquivos .xz que eles produzem são apenas um grande bloco de dados compactados, em vez de uma coleção de blocos menores. Isso faz aleatório acesso aos dados originais impossíveis.
Com o pixz, ambos os problemas foram resolvidos.
O uso é simples:
tar -Ipixz -cf foo.tpxz foo
para compactar uma pasta foo
pixz -l foo.tpxz
para listar arquivos nele (rápido!)
pixz -x <file_path> < foo.tpxz | tar x
para extrair um único arquivo dado <file_path>
no arquivo
Como bônus, você também terá direitos de acesso armazenados, uma vez que os arquivos são os primeiros a serem alcatroados!