Как создавать и извлекать zip-архивы из командной строки?
Обычно используется команда tar
для создания несжатого архива и gzip
или bzip2
для сжатия этого архива. Соответствующие команды gunzip
и bunzip2
могут быть использованы для распаковки архива, или вы можете просто использовать флаги в команде tar
для выполнения распаковки.
Если вы имеете в виду именно формат Zip-файлов, то можно просто использовать команды zip
и unzip
.
Для сжатия:
zip squash.zip file1 file2 file3
или зазиповать каталог
zip -r squash.zip dir1
Чтобы распаковать:
unzip squash.zip
это распакует его в текущий рабочий каталог.
Существует действительно огромное количество различных способов сжатия и распаковки в производных UNIX, поэтому я предположу, что вы имели в виду "zip" в общем смысле, а не конкретный формат файла.
Вы можете застегнуть файлы (в сжатом формате) с помощью программы GNU tar
:
tar -zcvf myfile.tgz .
которая сделает это в текущем каталоге. Замените .
на другие имена файлов, если вам нужно что-то другое.
Чтобы разархивировать этот файл, используйте:
tar -zxvf myfile.tgz
Конечно, это при условии, что у вас есть tar
, способный выполнять сжатие и объединение файлов в один.
Если нет, вы можете просто использовать tar cvf
с последующим gzip
(опять же, если доступно) для сжатия и gunzip
с последующим tar xvf
.
Для конкретной работы с файлами формата ZIP я бы рекомендовал загрузить 7zip
и использовать его - он распознает огромное количество форматов файлов, включая ZIP.
Если у вас не установлены пакеты zip и unzip, но есть java, вы можете использовать jar
для распаковки:
jar -xf file.zip
Ну, когда дело доходит до распределения файлов для различных операционных систем, Я'd РЕКОМЕНДУЮ 7-зип.
Обычно в p7zip пакет`, вы'll получают команду
с 7z " и " 7za`, с помощью которой вы можете создавать свои собственные архивы 7z.
7za
также может распаковывать стандартные (архиваторами pkzip) zip-архивы (и создавать их, а с параметром -файлы tzip
).
Сжатие:
7za a archive.7z file1 file2 directory/
Распаковки:
7za x archive.7z
Он также может создавать самораспаковывающиеся архивы с параметром -спецэффекты
:
7za a -sfx archive.exe files1 file2 dir
Я рекомендую этот метод в случае, если пользователи Windows могут't откройте архивы 7z архивов (в случае, если вы хотите совет инструмент для этого: PeaZip, при).
Если вы хотите использовать тот же самый алгоритм сжатия с архива, используйте ключ -J В
С деготь
:
tar cJf archive.tar.xz file1 file2 dir
ХТ
является инструментом для Unix, который использует для сжатия LZMA2, но работает так, как ГЗ
, bz2 файл
и т. д. работает. Он даже работает как фильтр.
7z архивов не'т создавать архивы с полными информация файловой системы в Unix, так что вы'd нужен для использования " тар " перед использованием 7z архивов (а с 7z архивов магазинах прочая информация о ТАР
файл, я'd рекомендую использовать ХТ
, так как он предназначен для этого):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
unzip <filename>
и
zip -r archive.zip <filename> [filename]
Вы'll необходимо, чтобы убедиться, что эти команды, установленные через ваш менеджер пакетов. Это's не труднее, чем через все остальное в командной строке. Это'ы, конечно, проще, чем создание архивов с дегтем.
В BSD tar может сделать это
bsdtar acf bravo.zip alfa.jpg
Или:
bsdtar xf bravo.zip
Самый стандартный ответ: [человек
][1], который рекомендуется команда cpio
и ТАР
.
В отличие от команды cpioи POSIX
деготь, но, как деготь ГНУ``,
Пакскак умеет архивировать файлы и сжимать архив. Это поведение отличается от [
молния`]4, который сжимает каждый файл, прежде чем положить его в архиве.
[1]: http://en.wikipedia.org/wiki/Pax_(в Unix)
Это касается только добычи.
Для этого, я'вэ начал использовать dtrx
.
Вся суть ее заключается в удалении сложности. Так что вам просто сдать в архив и выяснилось, что должно быть сделано с ним. Зип, тар ГЗ... использовать всегда один — dtrx archive.zip
. Он задает несколько вопросов, и вы'повторно сделано.
dtrx
есть в большинстве репозиториев, так что вы можете АПТ
|пальчики оближешь
установить его.
Я часто ловлю себя на попытке в zip модифицированные файлы в мой рабочий каталог -- либо скопировать все измененные файлы в другую директорию песочнице или сохранить их на короткое время, потому что я хочу отменить некоторые изменения.
В таком случае, я копирую список измененных файлов во временный файл и использовать молния
с параметром -@
.
Позвольте'ы сказать, что я изменил файлы ФОО.ч, Bar.cc и TestBar.cc.
Позвольте'ы сказать, что я создать файл с названием modified-files.txt содержание которого являются:
Foo.h
Bar.cc
TestBar.cc
Я выполните следующую команду в zip эти файлы:
cat modified-files.txt | zip modified-files.zip -@