практическое руководство расширяет И извлекает .tar.bz2 с помощью инструмента командной строки с 7 zip

Используя sed эмулировать tac:

sed '1!G;h;$!d' ${inputfile}
7
28.05.2011, 20:05
4 ответа

С 7zip, необходимо выполнить команду дважды, однажды чтобы распаковать и снова извлечь. Формат файла tar является просто "комком" всего застрявшего вплотную. Затем целый файл tar сжат с помощью различных алгоритмов сжатия в примере bzip. В основном получающийся файл имеет два слоя. Когда Вы "извлекаете" bzip слой, Вы получаете файл tar, затем при извлечении файла tar, Вы получаете набор отдельных файлов.

7zip не обрабатывает несколько слоев сразу, хотя это может обработать оба слоя:

7z x foo.tar.bz2
7z x foo.tar

На самом деле стандартные инструменты Unix работают тот же путь:

bunzip2 foo.tar.bz2
tar xf foo.tar

Однако Unix tar команда имеет удобные функции, которые называют вторичные шаги сжатия и распаковки с помощью другой программы прежде чем/после того, как она обрабатывает часть tar. В основном -j вызовы аргумента bzip2/bunzip2, Вы просто не видите второй шаг. Аналогично -z будет звонить gzip/gunzip, и т.д.

3
27.01.2020, 20:17

Как насчет более короткой версии 7z и комбинация tar с помощью стандарта и каналов?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -
2
27.01.2020, 20:17

В то время как Вы не можете сделать этого в одной команде, можно использовать конвейер оболочки к цепочке два 7z команды в одну командную строку как так:

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar
3
27.01.2020, 20:17
7z x -so foo.tar.bz2 | 7z x -si -ttar
1
27.01.2020, 20:17

Теги

Похожие вопросы