O Ubuntu vem com Python (Python 2.7 e Python 3), que contém os módulos necessários para extrair arquivos. Então, se por alguma razão o comando tar
estiver faltando (digamos que seu administrador de sistema o tenha removido e você não tenha sudo
privillege para instalá-lo), pode-se usar:
python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz
Como um script curto, é mais legível como:
#!/usr/bin/env python3
import tarfile,sys
with tarfile.open( sys.argv[1] ) as fd:
fd.extractall()
Suponha que eu criei um arquivo .xz
com tar cJf thing.xz /etc/passwd
. O arquivo conterá o diretório etc
com o arquivo passwd
dentro. O uso do script acima resultará no diretório etc
criado em seu diretório de trabalho atual e dentro dele será passwd
file. Claro, isso sempre pode ser estendido especificando o caminho onde você deseja extrair dentro da função extractall()
.