Как я архивировал/разархивировал на командной строке Unix?

Заметное отличие, которое я наблюдаю, - то, что Вы не можете вложить обратные галочки, в то время как можно вложить $(). Возможно, оба существуют по причинам прежней версии. Точно так же . и source команды являются синонимами.

559
20.02.2011, 20:19
9 ответов

Обычно каждый использует tar создать несжатый архив и также gzip или bzip2 сжимать тот архив. Соответствие gunzip и bunzip2 команды могут использоваться для распаковки, сказал, что архив, или можно просто использовать флаги на tar команда для выполнения несжатия.

Если Вы обращаетесь конкретно к формату zip-файла, можно просто использовать zip и unzip команды.

Сжиматься:

zip squash.zip file1 file2 file3

или архивировать каталог

zip -r squash.zip dir1

Распаковать:

unzip squash.zip

это разархивировало его в Вашем текущем рабочем каталоге.

684
27.01.2020, 19:27
  • 1
    я лично только когда-либо использую zip -r9 archive.zip files... синтаксис (-r=recursive-9=max сжатие). –  amphetamachine 31.01.2011, 14:29
  • 2
    Так же, как примечание стороны: zip может создать много различных разновидностей архивов.ZIP, а также использовать много различных компрессоров. С другой стороны, существует много других инструментов сжатия, названных так же: С 7 zip, gzip, bzip2, rzip, и т.д. которые не являются взаимозаменяемыми. –  polemon 04.05.2014, 17:34
  • 3
    В случае, если Вы не хотите, чтобы родительский каталог был включен: cd dir1; zip -r ../squash.zip * –  Marinos An 30.11.2016, 20:11
  • 4
    я смущен, я сделал это и получаю длинный список инфляций и извлечений, но когда я проверяю каталог, это пусто, сохраните для исходного zip-файла? Куда все это идет? –  Summer Developer 15.01.2017, 03:43
  • 5
    Для записи использовать unzip -d myfolder squash.zip извлечь в отдельный новый каталог (myfolder) вместо того, чтобы поместить все файлы непосредственно в текущий каталог, который может быть раздражающим, если zip-файл содержит много файлов и каталогов на его верхнем уровне. Это подражает, как большая часть UI разархивировала работу инструментов. –  Alexander Klimetschek 08.03.2017, 07:01

Существует действительно огромное количество различных способов сжать и распаковать под производными UNIX, таким образом, я собираюсь предположить, что Вы имели в виду "zip" в универсальном смысле, а не определенном формате файла.

Можно архивировать файлы (в сжатом формате) с GNU tar программа:

tar -zcvf myfile.tgz .

который сделает текущий каталог. Замена . с другими именами файлов, если Вы хотите что-то еще.

Для разархивации того файла используйте:

tar -zxvf myfile.tgz

Это предполагает, конечно, что у Вас есть a tar способный к выполнению сжатия, а также объединению файлов в один.

В противном случае можно просто использовать tar cvf сопровождаемый gzip (снова, при наличии) для сжатия и gunzip сопровождаемый tar xvf.


Для определенной обработки файлов формата ZIP я рекомендовал бы загрузить 7zip и с помощью этого - это распознает огромное множество форматов файлов, включая ZIP один.

65
27.01.2020, 19:27
  • 1
    Или используйте tar jcvf file.tar.bz2... сжиматься в bzip2 формате или tar Jcvf file.tar.xz ... для xz сжатия. –  OldTimer 11.03.2016, 02:04
  • 2
    I downvoted Ваш ответ, потому что вопрос о том, как иметь дело с архивами zip не файлы tar. –  Starfish 18.12.2016, 05:35
  • 3
    @Starfish, это, конечно, в Ваших правах, спасибо за то, что, по крайней мере, объяснили, почему, столько людей не не торопится, чтобы сделать это :-) Я взял "zip" в более универсальном смысле (сжатие), а не определенный формат, таким образом, я сделаю это более ясным. –   18.12.2016, 09:52

Ну, когда дело доходит до распределительных файлов для множества операционных систем я рекомендовал бы с 7 zip.

Обычно в пакете p7zip, Вы доберетесь 7z и 7za команда, с которой можно создать собственное 7z архивы.

7za может также распаковать стандарт (pkzip) архивы zip (и создать их также с -tzip переключатель).

Сжатие:

7za a archive.7z file1 file2 directory/

Распаковка:

7za x archive.7z

Это может также создать самораспаковывающиеся архивы с -sfx переключатель:

7za a -sfx archive.exe files1 file2 dir

Я рекомендую этот метод в случае, если пользователи Windows не могут открыться 7z архивы (в случае, если Вы хотите к совету инструмент для этого: PeaZip).

Если Вы хотите использовать тот же алгоритм сжатия со своим tarballs, используйте -J переключатель с tar:

tar cJf archive.tar.xz file1 file2 dir

xz инструмент UNIX, который использует LZMA2 для сжатия, но прокладывает себе путь gz, bz2, и т.д. работы. Это даже работает фильтром.

7z не создает архивы с полной информацией о файловой системе о UNIX, таким образом, необходимо было бы использовать tar перед использованием 7z (но с тех пор 7z хранит другую информацию о tar файл, я рекомендовал бы использовать xz, поскольку это разработано для него):

tar cf - file1 file2 dir | 7za z -si archive.tar.7z
29
27.01.2020, 19:27
  • 1
    я должен, возможно, добавить этот ответ с atool, это - миленький инструмент, который делает использование многих различных компрессоров более удобным. Свяжите это с a и создание архива становится a arc.7z folder/ или извлечение простого a arc.7z –  polemon 03.05.2014, 02:17
unzip <filename>

и

zip -r archive.zip <filename> [filename]

Необходимо будет удостовериться, что эти команды установлены через диспетчер пакетов. Это не тяжелее, чем использование чего-либо еще на командной строке. Это, конечно, более просто, чем создание архивов с tar.

23
27.01.2020, 19:27
  • 1
    я знаю это, является старым потоком, но это - лучший ответ. Не говорит о 7z или tar, его краткое и прямое к –  Kyle 15.12.2016, 00:23

Самый стандартный ответ pax, который рекомендуется cpio и tar.

В отличие от этого, cpio и POSIX tar, но как GNU tar, pax может к обоим архивным файлам, и сожмите архив. Это поведение отличается от zip, который сжимает каждый файл прежде, чем поместить его в архив.

3
27.01.2020, 19:27
  • 1
    Делает pax поддерживать архивы zip? –  Starfish 18.12.2016, 05:50
  • 2
    Нет и это не поддерживают pax архивы также! –  roblogic 01.02.2018, 06:45

Если у вас не установлены пакеты zip и unzip и у вас есть java, вы можете использовать jar для распаковки:

jar -xf file.zip
32
27.01.2020, 19:27

BSD Tar также может сделать это

bsdtar acf bravo.zip alfa.jpg

Или:

bsdtar xf bravo.zip
4
27.01.2020, 19:27

Сюда относится только экстракция.

Для этого я начал использоватьdtrx.

Весь смысл в том, чтобы устранить сложность. Так что вы просто передаете ему любой архив, и он сам разбирается, что с ним нужно сделать. Zip, tar, gz... Использование всегда одинаковое — dtrx archive.zip. Он задает несколько вопросов, и все готово.

dtrxдоступен в большинстве репозиториев, поэтому вы можете apt| yumустановите его.

2
27.01.2020, 19:27

Я часто ловлю себя на том, что пытаюсь заархивировать измененные файлы в моем рабочем каталоге --либо для того, чтобы скопировать все измененные файлы в другой рабочий каталог песочницы, либо для того, чтобы сохранить их на короткое время, потому что я хочу отменить некоторые изменения.

В этом случае я копирую список измененных файлов во временный файл и использую zipс опцией -@.

Допустим, я изменил файлы Foo.h, Bar.cc и TestBar.cc.

Допустим, я создаю файл с именем модифицированный -files.txt, содержимое которого:

Foo.h
Bar.cc
TestBar.cc

Я выполняю следующую команду, чтобы заархивировать эти файлы:

cat modified-files.txt | zip modified-files.zip -@
1
27.01.2020, 19:27

Теги

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