Как использовать 7-Zip CLI для Windows для создания архивов .tar.gz?

30

Как я могу использовать 7-Zip CLI ( 7za.exe ) в Windows для создания архивов .tgz, как я использую tar zcvf archive.tgz source_filesв Linux?

f.ardelian
источник

Ответы:

35

Если вы хотите сделать это в одну строку:

7za.exe a -ttar -so -an source_files | 7za.exe a -si archive.tgz

-anПереключатель говорит 7-Zip не разобрать параметр командной строки имя_архива , который обычно требуется.

afrazier
источник
примечание: если у вас нет 7za.exe в вашей 7zip-папке, вы также можете использовать 7zg.exe, если доступно
anion
1
В моем случае не было ни 7za.exe, ни 7zg.exe, а 7z.exe.
JoL
tar требуется, потому что tgz или tar.gz - это файл tar, который был заархивирован. У 7zip просто нет возможности сделать все это за один шаг, поэтому вы должны перенаправить вывод команды, которая копирует ваши файлы, в ту, которая сжала ваш tar ^^. Вот почему, когда вы открываете tar.gz в 7zip, вы видите tar-файл внутри.
Д.Гойко
@DGoiko Я знаю эту часть - я просто не понимаю, почему archive.tar имя файла требуется, когда данные передаются на стандартный вывод.
афразир
А ну понятно. Я думал, что для правильного отображения gz нужно внутреннее имя файла, но, возможно, я ошибся.
Д.Гойко
5

Если вы просто сжимаете 1 файл в tarball, то 7za a archive.tgz source_fileэто сработает.

Если вы хотите добавить много файлов в tar, то вам нужно сделать это в два шага: создать tar и 7za a archive.tar source_files сжать его7za a archive.tgz archive.tar

И, при необходимости, удалите «временный» tar del archive.tar

Крис Кент
источник