zip and unzip in Linux
There are many utilities that can be used to archive/extract, compress/decompress files in Linux, mainly are: tar , gzip , bzip2 , zip , etc.
Before we use these utilities, it’s better to be clear about the differences between the meaning of archiving and compressing.
Archiving simply package several files together into a single file, there is no compress procedure involved implicitly, on the other side,
Compressing will package files together and apply some compressing algorithm to shrink the size of the resulting file.
A list of common archived files in Linux
- .tar
- .tar.gz
- .tar.bz2
- .tar.xz
- .tar.Z
- .tgz
- .zip
Note:
.tar.gz and tar.bz2 are the two most common zipped file format in Linux, .gz implies gzip compressed file, while .bz2 implies bzip compressed (LZ77 algorith is applied) file.
The tar utility is used to create a single archive from several files and extract the files from an archinve.
The gzip , bzip2 or zip utility is used to compress a single file to smaller size.
tar, gzip, bzip2 are provided by default in most Linux/Unix distributions, zip utility may need a manual installation.
Compress | Decompress | List |
---|---|---|
gzip filename | gzip -d *.gz, gunzip *.gz | gzip -l *.gz |
bzip2 filename | bzip2 -d *.bz2, gunzip data.doc.bz2` | |
zip data.zip *.doc zip -r data.zip data/ |
unzip *.zip | unzip -l *.zip |
tar -zcvf data.tgz *.doc tar -zcvf data.tar.gz *.doc tar -jcvf data.tbz2 *.doc |
tar -zxvf data.tgz tar -zxvf pics.tar.gz *.jpg tar -jxvf data.bz2 |
tar -ztf *.tgz tar -ztf *.bz2 tar -jtf *.bz2 |
Common options of tar
- -c: create a new archive
- -x: extract files from an archive
- -t: list the contents of an archive
- -r: append files to the end of an archive
- -u: update
Note that the above five options are independent and therefore any two of them can not be used together (they can be used combined with other options but not each other).
-c or -x will be used when packaging or extracting.
- -z, –gzip use gzip compress
- -j, –bzip2 use bzip2 compress
- -Z, –compress use for *.tar.Z
- -v verbose
- -O, –to-stdout extract files to standard output
- -C, –directory Output directory
-f option is used to specify the archive name, this is a mandatory option for tar .
Как распаковать ZIP в Linux
В операционной системе Windows формат архивов ZIP считается чуть ли не стандартным, он даже поддерживается в этой операционной системе, что называется «из коробки». Если вы только перешли с Windows, то у вас, наверное, есть много таких архивов с различными файлами, также ZIP-архивы могут часто попадаться на просторах интернета. Поэтому работать с такими файлами в Linux вам однозначно придётся.
В этой небольшой статье мы рассмотрим, как распаковать ZIP Linux. Разберём несколько способов и воспользуемся несколькими утилитами, которые справятся с этой задачей.
Распаковка ZIP Linux
Формат ZIP был создан в 1989 году на замену очень медленному формату ARC. Здесь используется сжатие deflate, и на то время оно работало намного быстрее чем ARC. Исторически сложилось так, что стандартным форматом для Linux стали TAR и GZ — это усовершенствованные алгоритмы сжатия и архивации. Многие графические распаковки воспринимают и ZIP-файлы. Но они обрабатывают архивы не сами, а дают команду предназначенным для этого формата утилитам.
Утилита для распаковки ZIP называется unzip, она не всегда установлена по умолчанию. Но вы можете очень просто добавить её в свою систему из официальных репозиториев. Для этого в Ubuntu выполните:
sudo apt install unzip
А в системах, использующих формат пакетов Red Hat, команда будет выглядеть немного по-другому:
sudo yum install unzip zip
После установки большинство графических утилит для работы с архивами смогут распаковать архив ZIP Linux. Команда ZIP Linux установлена на случай, если вы захотите создавать ZIP-архивы.
Но этой утилите не нужны дополнительные оболочки для распаковки архива. Вы можете сделать всё прямо из консоли. Давайте рассмотрим синтаксис утилиты:
$ unzip опции файл_архива.zip файлы -x исключить -d папка
- файл архива — это тот файл, с которым нам предстоит работать;
- файлы — здесь вы можете указать файлы, которые нужно извлечь, разделять имена файлов пробелом;
- исключить — файлы, которые извлекать не нужно;
- папка — папка, в которую будет распакован архив.
Теперь рассмотрим опции утилиты, поскольку она позволяет не только распаковывать архивы, но и выполнять с ними определённые действия:
- -l — вывести список файлов в архиве;
- -t — протестировать файл архива на ошибки;
- -u — обновить существующие файлы на диске;
- -z — вывести комментарий к архиву;
- -c — извлекать файлы на стандартный вывод, перед каждым файлом будет выводиться его имя;
- -p — то же самое, только имя выводится не будет;
- -f — извлечь только те файлы, которые уже существуют на диске, и файлы в архиве более новые;
- -v — вывести всю доступную информацию;
- -P — указать пароль для расшифровки архива;
- -n — не перезаписывать существующие файлы;
- -j — игнорировать структуру архива и распаковать всё в текущую папку;
- -q — выводить минимум информации.
Все самые основные опции рассмотрели, теперь давайте рассмотрим несколько примеров работы с программой в терминале. Чтобы распаковать ZIP Linux в текущую папку, достаточно набрать:
Причём расширение указывать не обязательно. Протестировать архив можно с помощью опции -t:
unzip -tq имя_файла.zip
Вы можете протестировать все архивы в текущей папке, выполнив:
Если нужно распаковывать архив не в текущую папку, можно очень просто указать нужную:
unzip имя_файла.zip -d /tmp
Также можно распаковывать не весь архив, а только нужные файлы или файлы нужного формата:
unzip имя_файла.zip \*.txt -d /tmp
С помощью опции -l вы можете посмотреть список файлов в архиве:
unzip -l file.zip
Утилиту unzip разобрали и теперь вы с ней точно справитесь. Но я говорил, что мы рассмотрим несколько способов, как выполняется распаковка ZIP Linux. Поэтому дальше мы поговорим об утилите 7z.
Демонстрация работы утилит zip и unzip в терминале:
Как распаковать ZIP Linux с помощью 7z
7z — это кроссплатформенный набор утилит для работы с архивами. Кроме собственного формата, здесь поддерживается большое количество других, в том числе tar и zip. Плюс этой утилиты — в контекстное меню файлового менеджера будет добавлен пункт, с помощью которого вы сможете распаковывать или создавать архивы.
Для установки утилиты в Ubuntu или Debian выполните:
sudo apt install p7zip-full
А в Red Hat и CentOS:
sudo yum install p7zip
Теперь вы можете использовать контекстное меню вашего файлового менеджера, чтобы распаковать архив ZIP Linux. Также можно использовать программу в консоли. Синтаксис очень похож на unzip:
$ 7z команда опции имя_архива
Команда задаёт нужное действие. Нас будут интересовать только четыре команды:
- e (Extract) — извлечь файлы из архива;
- x eXtract — извлечь файлы из архива, сохраняя полный путь;
- l (List) — список файлов архива;
- t (Test) — проверить архив.
Теперь рассмотрим самые полезные опции:
- -o — указать папку для распаковки;
- -p — указать пароль;
- -x — не извлекать эти файлы;
- -w — указать рабочую директорию;
- -y — отвечать положительно на все вопросы;
Ну и рассмотрим примеры работы с утилитой. Сначала проверим содержимое архива:
Распаковываем архив, сохраняя структуру подкаталогов:
Или распаковываем все файлы в одну папку, игнорируя подкаталоги:
Или вы можете указать папку, в которую нужно распаковать файлы с помощью опции -o:
7z x файл.zip -o /tmp/
Выводы
В этой статье была рассмотрена распаковка ZIP Linux, как видите, это ненамного сложнее, чем распаковка стандартных архивов TAR. Мы рассмотрели два способа ,и теперь вы точно будете знать, что делать, когда столкнетесь с такой ситуацией. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Unzip a Zip File in Linux Command Line
Zip is a popular command-line tool to compress files. It allows us to create Zip archives. By default, it uses a lossless data compression technique.
Once the compressed zip file is placed in the target directory, it needs to be extracted. In this tutorial, we learn how to unzip a zip file in Linux command line using unzip command.
Prerequisites
- Unzip package installed
- If the package is not installed required a user account with sudo access
Install unzip Package in Linux
The new versions of Linux Distributions are already installed with unzip package. If not installed you may see «sudo: unzip: command not found» error when you try unzip command. You can easily install unzip package using the package manager.
Ubuntu / Debian
To install unzip on Ubuntu and Debian use the apt command:
Fedora / Redhat / AlmaLinux / Rocky Linux
On RPM-based Linux Distributions such as Fedora, Redhat, AlmaLinux, and Rocky Linux you can use the DNF package manager.
To install the unzip package using DNF, type:
You may also use yum to install unzip command:
unzip Command in Linux
The unzip command is mainly used for unzipping — extracting files from a specified zip archive file. The archive file will have a .zip file extension. You may also use unzip command to list and test the zip files. By default unzip command extracts into the current directory.
The basic syntax for unzip command:
Unzip a ZIP File with the unzip
Unzipping your compressed zipped file is simple and straightforward.
For example to unzip a zip file named archived_file.zip, type:
When unzip is used without any options, it extracts to the current directory. You can use ls command to verify it.
Make sure you have write permissions on the current folder where you will extract zip files to.
By default, unzip linux will print the names and summary of the files it has extracted. Using the -q option will unzip all the files in a quiet mode:
Extracting Files to a another directory
To unzip a ZIP file to a different directory, we use the -d option followed by the absolute path:
Exclude Files
When unzipping you can exclude specific files and subdirectories. That means those files or directories will be kept as it is in the archive file, and won’t be extracted.
Use -x option to exclude files or directories while extracting.
For example to exclude files named filename1 and dual from being extracted, type:
Overwrite Existing Files
Unzipping twice will prompt for overwriting existing files. This scenario happens in cases where you have deleted some extracted files and to fix that you have to extract files again.
When run unzip again, it will prompt to replace:
- [y]es: overwrite current file
- [n]o: don’t overwrite current file
- [A]ll: overwrite all of the files
- [N]one: overwrite none of the files
- [r]ename: Extract current file but give it a new name and prompt for a new name.
For unzip to overwrite the files without raising any prompt, use the -o option. This perform force unzip overwriting any existing files.
Without Overwriting Existing Files
For unzip to extract only files that are not present in the target directory use -n option.
Never overwrite a scenario that could happen when you have to keep all the extracted files with changes and restore the deleted files.
List Contents of ZIP Archive
Use -l option to list the contents of the ZIP archive file. This option helps to see what’s inside the zip file before extracting it.
For example to list the contents of the zipped archived file named archived_file.zip, type:
You can use unzip pipe through less to get the big list of files at a time.
Unzip multiple ZIP files
To perform unzip multiple files which are in .zip extension, you may need to use regular expression.
The following command unzip all .zip files in the current directory:
Password protected zip file
Use -p option to unzip a password protected zip file. The -p option should be followed by the password which was used to zip the file.
A rather more secure option would be to extract the file without providing the password. This way command will prompt for the password.
Verify ZIP Archive Integrity
Using unzip command you can test the archive files using the -t option. This helps to find any corrupt files inside the archive.
Remeber this process may take a longer time to complete as it performs cyclic redundancy checks.
Conclusion
In this tutorial, we learned how to unzip files from Linux command line. Commonly unzip command is used to extract compressed ZIP archives and list zip file contents.
For more information browse to the man unzip page. Thanks for reading, please provide your feedback and suggestions in the below comment section.
If this resource helped you, let us know your care by a Thanks Tweet. Tweet a thanks
Команда Unzip в Linux, или Как Распаковать Архив
Архивирование и распаковка файлов упрощает множество задач, но главная из них — передача файлов! В этом руководстве вы узнаете, как использовать команду unzip в Linux для оптимизации процесса работы с вашим VPS!
Zip — это часто используемая функция сжатия. Она портативна и проста в использовании. Вы даже можете распаковать в Windows файлы, созданные в Linux!
Утилита Unzip по умолчанию недоступна в большинстве дистрибутивов Linux, но её легко установить. С .zip можно добиться уровня сжатия, аналогичного .tar.gz.
Ниже приведены несколько сценариев, в которых вы можете использовать zip-файлы:
Когда вы работаете с системами на базе Windows и Unix и часто переключаетесь между ними. Архиватор не только сжимает файлы, но также является служебной программой для создания пакетов файлов. Работает на нескольких операционных системах;
Чтобы сэкономить трафик. Если у вас ограниченная пропускная способность, zip может использоваться для передачи файлов между двумя серверами;
Более быстрая загрузка и скачивание директорий;
Экономия места на диске;
Распаковка защищённых паролем архивов .zip
Когда нужна хорошая степень сжатия
Помните, для того, чтобы использовать unzip в Linux, сначала вам необходимо подключиться к серверу VPS по SSH.
Установка unzip в Debian и Ubuntu
Установить unzip очень просто! В Ubuntu и Debian используйте команду:
Затем устройтесь поудобнее и немного подождите, пока установка не будет завершена.
Чтобы создавать zip-файлы, вам также необходимо установить zip. Вы можете сделать это с помощью следующей команды:
Установите Unzip в Linux — CentOS и Fedora
Здесь всё тоже очень просто, используйте следующую команду:
По завершению установки можете проверить путь с помощью следующей команды:
Выполнив указание в командной строке, вы должны получить следующий результат:
Вы также можете убедиться, что всё установлено правильно, используя команду ниже. Она выведет подробный отчёт об утилите unzip.
Как использовать Zip и Unzip в Linux
Теперь, когда мы знаем, как установить утилиту, можем приступить к её основных способам использования:
Создание zip-файлов в Linux
Базовый синтаксис для создания файла .zip:
В качестве примера мы заархивируем два файла — ExampleFile.txt и ExampleFile1.txt. Упакуем мы их в архив sampleZipFile.zip с помощью следующей команды:
Распаковка файлов в Linux
Команду unzip можно использовать без каких-либо опций. В чистом виде она просто распакует все файлы в текущий каталог. Один из таких примеров показан ниже:
По умолчанию архив будет распакован в текущую папку, если у вас есть доступ на чтение и запись файлов.
Удаление файла из архива .zip
Вы можете удалять файлы в созданном вами архиве .zip. Например, если вы хотите удалить ExampleFile.txt из существующего sampleZipFile.zip, вы можете использовать следующую команду:
После выполнения этой команды вы можете распаковать файл .zip, используя:
При этом вы обнаружите, что файл ExampleFile.txt был удалён и больше не отображается при извлечении.
Как добавить файлы в существующий Zip-архив
Вы можете добавить новый файл к уже существующему архиву .zip. Допустим вам необходимо добавить новый файл ExampleFile2.txt в уже существующий файл sampleZipFile.zip. Вы можете сделать это с помощью команды:
Теперь, если вы распакуете архив sampleZipFile.zip, то обнаружите среди файлов новый ExampleFile2.txt.
Перемещаем файл в ZIP-архив
Вы можете легко переместить выбранные файлы в zip-архив. Это означает, что после добавления файлов в архив они будут удалены из исходных каталогов. Эта опция используется в основном в тех случаях, когда у вас большой файл или каталог, но вам нужно сохранить дисковое пространство. Чтобы реализовать команду, добавим к ней параметр -m. Вот пример:
Рекурсивное использование Zip в Linux
Параметр -r используется для рекурсивного архивирования файлов. Эта опция сжимает все файлы, находящиеся в папке. Пример такой команды показан ниже:
В этом примере MyDirectory — это каталог, содержащий несколько файлов и подкаталогов для архивирования.
Исключить файлы из ZIP-архива
При создании архива .zip вы можете исключить ненужные файлы. Это делается с помощью опции -x. Ниже приведён пример:
В этом примере ExampleFile.txt не будет добавлен в архив sampleZipFile.zip вместе с остальными.
Распаковать в другой каталог
Если вы не хотите распаковывать файлы в текущий каталог, а указать определённое местоположение, используйте параметр -d. Это позволит вам указать путь к каталогу, куда вы хотите распаковать архив. Пример такой команды показан ниже:
Распаковка нескольких ZIP-архивов
Если вы хотите распаковать несколько zip-файлов в текущий рабочий каталог, используйте команду:
Эта команда распакует все отдельные zip-файлы.
Свернуть вывод при распаковке архива в Linux
По умолчанию, когда мы используем команду unzip, она выводит список всех извлекаемых файлов — распечатывает краткое описание процесса экстракции. Если вы не хотите видеть эти сообщения, можете использовать опцию -q. Вот пример команды:
Исключение файлов с помощью Unzip в Linux
Если вы хотите извлечь все файлы, кроме одного, можете использовать показанную ниже команду:
В этом примере команда распакует все файлы, кроме excludedFile.txt.
Также вы можете запретить извлечение определённых типов файлов. Один из таких примеров показан ниже:
Вышеупомянутая команда исключит из извлечения все файлы .png.
Использование Unzip в Linux с архивами, защищёнными паролем
Защищённый паролем архив .zip можно распаковать с помощью параметра -P. Пример такой команды показан ниже:
В приведённой выше команде слово «Пароль» нужно заменить паролем от файла .zip.
Замена Zip-файлов
При попытке распаковать один и тот же файл в том же месте, где он был запакован, система спросит, что вы хотите сделать дальше: перезаписать текущий файл, перезаписать все файлы, пропустить извлечение для текущего файла, пропустить извлечение для всех файлов или переименовать текущий файл.
Варианты будут выглядеть следующим образом:
Вы можете перезаписать все файлы без подтверждения этого действия, используя параметр -o. Один из таких примеров показан ниже:
Но будьте осторожны, выполнении этой команды полностью перезапишет существующие копии. Любые изменения, внесённые в предыдущую копию, будут перезаписаны.
Использование Linux Unzip без перезаписи файлов
Если вы распаковали архив и внесли некоторые изменения, но случайно удалили несколько файлов, вы можете использовать эту опцию для их восстановления! Используйте параметр -n, чтобы пропустить извлечение, если файл уже существует. Таким образом, будут распакованы только удалённые ранее файлы. Пример такой команды:
Как вывести список содержимого ZIP-архива в Linux
Опция -l перечислит все файлы в .zip вместе с временем и другой важной информацией о файлах. Пример такой команды:
Итоги
Вот и всё, вы познакомились со всеми основными функциями утилит для архивирования zip и unzip в Linux. Начните организовывать свои файлы прямо сейчас!
Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.