используйте bsdtar для создания zip-файла

989
athos

Я использую GnuWin32 bsdtar, чтобы извлечь это просто:

bsdtar xvf c:\test.zip -C c:\temp\ 

но мне не удалось создать ZIP-файлы. Я старался

bsdtar -cf test.zip a.csv b.csv 

но сгенерированный файл не может быть открыт winzip.

Как правильно создать ZIP-файл в командной строке?

2

1 ответ на вопрос

1
Nathan.Eilisha Shiraini

С https://www.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1 :

-a, --auto-compress (c mode only) Use the archive suffix to decide a set of the for- mat and the compressions. 

Итак, вам придется использовать:

bsdtar -a -cf test.zip a.csv b.csv 

На самом деле, это именно тот пример, который они дают:

tar -a -cf archive.zip source.c source.h creates a new archive with zip format 

Совет для профессионалов: каждый раз, когда вы ищете, как сделать что-то с командой из мира * NIX, попробуйте набрать man <command>в Google. Эта техника никогда не подводила меня.

bsdtar: неверный параметр - Использование: Список: bsdtar -tf Извлечь: bsdtar -xf Создать: bsdtar -cf [имена файлов ...] Помощь: bsdtar --help athos 6 лет назад 0
Похоже, только самый старый bsdtar не имеет этой опции. Согласно [актуальной, актуальной документации] (https://github.com/libarchive/libarchive/wiki/ManPageBsdtar1#OPTIONS), опция `-a` существует. Nathan.Eilisha Shiraini 6 лет назад 0
Однако, похоже, нет другого способа создать правильный zip-архив с помощью bsdtar. Если вы работаете в Windows, вы можете попробовать перейти на 7z (версия командной строки 7zip), но для этого потребуется изменить свои команды (особенно утомительно, если у вас есть скрипты, использующие его). Nathan.Eilisha Shiraini 6 лет назад 0
После копания кажется, что версия bsdtar для GnuWin32 действительно серьезно устарела. Сам сайт GnuWin32 утверждает, что он все еще там «по археологическим причинам». Nathan.Eilisha Shiraini 6 лет назад 0
спасибо я переключусь на 7zip athos 6 лет назад 0
Вы можете попробовать обновить его до последней версии libarchive, хотя я не знаю, поставляется ли ему скомпилированный bsdtar. Извините, что нет других решений. Nathan.Eilisha Shiraini 6 лет назад 0

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