Как сделать zip / unzip в командной строке unix?
Как я могу создать и извлечь zip-архивы из командной строки?
- В чем разница между gunzip и unzip?
- tar.bz2 7zip выборочная экстракция
- Почтовый файл имеет разный размер после копирования на флешку
- Как узнать, загружен ли файл wget?
- file-roller: произошла ошибка при загрузке архива (Zip / 7z)
- Сценарий Bash для выбора файлов для zip / unzip
- Замещать содержимое папки без включения самой папки
- Объект AIX для ZIP-списка файлов
- Возможно ли интегрировать файлы zip и tar.gz в качестве каталога в файловую систему
- Как перечислить файлы в zip без дополнительной информации в командной строке
- Создавать Zip для каждой вложенной папки, но содержащую только согласованные файлы
- Команда для рекурсивного хеширования CRC (CRC32)
- Почему tar не может извлекать .zip-файлы?
9 Solutions collect form web for “Как сделать zip / unzip в командной строке unix?”
Обычно используется tar
для создания несжатого архива и gzip
или bzip2
для сжатия этого архива. Соответствующие команды gunzip
и bunzip2
могут использоваться для распаковки указанного архива или вы можете просто использовать флаги в команде tar
для выполнения сжатия.
Если вы конкретно ссылаетесь на формат файла Zip , вы можете просто использовать команды zip
и unzip
.
Сжать:
zip squash.zip file1 file2 file3
или для zip-каталога
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.
Ну, когда дело доходит до распространения файлов для различных операционных систем, я бы рекомендовал 7-zip .
Обычно в пакете p7zip
вы получите команду 7z
и 7za
, с помощью которой вы можете создавать свои собственные 7z-архивы.
7za
также может распаковать стандартные ( pkzip ) zip-архивы (и создать их также с помощью -tzip
переключателя).
Сжимая:
7za a archive.7z file1 file2 directory/
Распаковка:
7za x archive.7z
Он также может создавать самораспаковывающиеся архивы с -sfx
переключателя -sfx
:
7za a -sfx archive.exe files1 file2 dir
Я рекомендую этот метод, если пользователи Windows не смогут открыть архивы 7z (если вы хотите посоветовать инструмент для этого: PeaZip ).
Если вы хотите использовать один и тот же алгоритм сжатия с вашими tarball, используйте ключ -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
unzip <filename>
а также
zip -r archive.zip <filename> [filename]
Вам нужно будет убедиться, что эти команды установлены через диспетчер пакетов. Это не сложнее, чем использовать что-либо еще в командной строке. Это, конечно, проще, чем создание архивов с tar.
Если у вас нет почтовых и распакованных пакетов, и у вас есть java, вы можете использовать jar
для распаковки:
jar -xf file.zip
Самый стандартный ответ – pax
, который рекомендуется использовать для cpio
и tar
.
В отличие от cpio
и Posix tar
, но как GNU tar
, pax
способен как архивировать файлы, так и сжимать архив. Это поведение отличается от zip
, который сжимает каждый файл перед его вставкой в архив.
BSD Tar также может это сделать
bsdtar acf bravo.zip alfa.jpg
Или:
bsdtar xf bravo.zip
Я часто пытаюсь закрепить измененные файлы в своем рабочем каталоге – либо скопировать все измененные файлы в другую рабочую директорию песочницы, либо сохранить их на короткое время, потому что я хочу отменить некоторые изменения.
В этом случае скопируйте список измененных файлов во временный файл и используйте zip
с параметром -@
.
Предположим, я модифицировал файлы Foo.h, Bar.cc и TestBar.cc.
Предположим, я создаю файл с именем modified-files.txt, содержимое которого:
Foo.h Bar.cc TestBar.cc
Я выполняю следующую команду для zip этих файлов:
cat modified-files.txt | zip modified-files.zip -@
Это охватывает только извлечение
Для этого я начал использовать dtrx
.
https://brettcsmith.org/2007/dtrx/
все дело в том, чтобы удалить сложность. Таким образом, вы просто передаете в любой архив, и он выясняет, что с ним нужно сделать. Zip, tar, gz … Использование всегда одно и то же – dtrx archive.zip
. Он задает несколько вопросов, и все готово.
dtrx
доступен в большинстве репозиториев, поэтому вы можете apt
| yum
установите его.