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
если еще нет