O Ubuntu vem com o Python (Python 2.7 e Python 3), que contém os módulos necessários para extrair arquivos. Portanto, se por algum motivo o tar
comando estiver ausente (digamos que seu sysadmin o tenha removido e você não tenha sudo
privilégios 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 .xz
arquivo com tar cJf thing.xz /etc/passwd
. O arquivo conterá o etc
diretório com o passwd
arquivo dentro. O uso do script acima resultará no etc
diretório criado no seu diretório de trabalho atual e dentro dele haverá um passwd
arquivo. Obviamente, isso sempre pode ser estendido especificando o caminho onde você deseja extrair dentro da extractall()
função.
xz-utils
se já não estiver presente