Ubuntu поставляется с Python (Python 2.7 и Python 3), который содержит необходимые модули для извлечения архивов. Поэтому, если по какой-либо причине tarкоманда отсутствует (скажем, ваш системный администратор удалил ее, и у вас нет sudoправ для ее установки), можно использовать:
python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz
Как короткий сценарий, он более читабелен как:
#!/usr/bin/env python3
import tarfile,sys
with tarfile.open( sys.argv[1] ) as fd:
fd.extractall()
Предположим, я создал .xzфайл с tar cJf thing.xz /etc/passwd. Архив будет содержать etcкаталог с passwdфайлом внутри. Использование приведенного выше скрипта приведет к созданию etcкаталога, созданного в вашем текущем рабочем каталоге, и внутри него будет passwdфайл. Конечно, это всегда можно расширить, указав путь, по которому вы хотите извлечь внутри extractall()функции.
xz-utilsесли еще нет