Команда Linux для извлечения файла войны?

Ответы:

145

Использование разархивируйте

unzip -c whatever.war META-INF/MANIFEST.MF  

Он напечатает вывод в терминале.

А для извлечения всех файлов

 unzip whatever.war

Использование jar

jar xvf test.war

Заметка! Команда jarизвлечет содержимое войны в текущий каталог. Не в подкаталог (как это делает Tomcat).

Джигар Джоши
источник
11
Я действительно думаю, что эта jarкоманда лучше, поскольку она предназначена именно для этого.
extraneon
4
@extraneon Не могли бы вы объяснить, почему jarлучше? Они оба извлекают папку, так почему, на ваш взгляд, jarлучше? Я не считаю, что это было правильным аргументом.
nuoritoveri
4
@extraneon Хорошо. Это зависит от конкретной ситуации: например, с точки зрения использования процессора unzip намного лучше, чем jar (0,624 CPU против 1,063 CPU используется) миграция процессора (0 против 16) Статистика счетчика производительности для 'jar xvf Calendar.war': 325.095182 task-clock (мс) # 1.063 ЦП использовали 16 миграций ЦП # 0,049 К / сек 3049 ошибок страниц # 0,009 M / сек Прошедшее время 0,305890466 секунд * Статистика счетчика производительности для 'unzip Calendar.war': 36.900667 task-clock ( мс) # 0,624 ЦП использовали 0 миграций ЦП # 0,000 К / с 419 ошибок страниц # 0,011 М / с 0,059182220 секунд истекло время
Хешав Сьюнундун
1
В команде unzip, если мы используем '-c', она будет извлекать файлы в stdout / screen ('' CRT ''). Для извлечения файла войны (всех файлов) флаг c не использовать.
Nithyanandhan M
9

Военный файл - это просто zip-файл с определенной структурой каталогов. Таким образом, вы можете использовать unzip или jar tool для распаковки.

Но вы, вероятно, не захотите этого делать. Если вы добавите военный файл в каталог webapps Tomcat, Tomcat позаботится об извлечении / установке военного файла.

Kdeveloper
источник
3
Иногда Tomcat не извлекает архив, и вам приходится делать это вручную. Это может случится.
radonys
В этом случае вы можете перезапустить tomcat или использовать 'touch <filename>', чтобы Tomcat начал извлечение.
Kdeveloper
Иногда Weblogic не хочет использовать войну :)
Ясин Окумуш
2

Вы можете использовать unzipкоманду.

тангенс
источник
0

Извлечение определенной папки (каталога) в военном файле:

# unzip <war file> '<folder to extract/*>' -d <destination path> 
unzip app##123.war 'some-dir/*' -d extracted/

Получаешь ./extracted/some-dir/в результате.

Nux
источник