- Архивируем файлы и папки в терминале Linux
- Архивируем папки и файлы командой tar
- Сжатие архива gzip bzip2
- Архивируем папки и файлы на практике
- Распаковка архива
- Архивация и сжатие файлов и папок
- Распаковка архивов
- Заключение
- Как заархивировать файлы и каталоги в Linux
- zip Команда
- Установите Zip в Ubuntu и Debian
- Установите Zip на CentOS и Fedora
- Как архивировать файлы и каталоги
- Методы и уровни сжатия
- Создание ZIP-файла, защищенного паролем
- Создание разделенного Zip-файла
- Примеры ZIP
- Выводы
- АРХИВАЦИЯ ФАЙЛОВ В LINUX
- АРХИВИРОВАНИЕ В LINUX
- СЖАТИЕ АРХИВОВ В LINUX
Архивируем файлы и папки в терминале Linux
Все мы пользуемся архивами, например zip, tar и так далее, но, есть понятие архивация и сжатие. Это совершенно два разных действия, архивацией называют например создание архивной копии вашей системы. А сжатие обозначает уменьшение размера файла или целой папки. Архивировать можно не только вашу операционную систему, но так же и базы данных, конфигурационные файлы и многое другое. При этом, важно что бы изначальный размер архивируемого объекта так же сжимался, это например будет полезно для экономии места на жестком диске. Думаю с этим все понятно, теперь вы знаете что существует архивация и сжатие файлов. Часто архивация и сжатие файлов производится одновременно. Теперь давайте перейдем к практике, все действия будут совершаться в терминале, так как это универсальный метод позволяющий обойтись без установки дополнительного П.О.
Архивируем папки и файлы командой tar
Для архивирования используется команда tar, давайте немного разберемся с опциями этой команды:
- tar c – создания архива
- tar r – добавления в архив файлов или папок
- tar t – просмотр содержимого архива без его распаковки
- tar x – распаковка архива
- tar v расширенный режим, в котором отображается вся информация о процессе
Это лишь малая часть всех опций, которые доступны при выполнении команды tar, полный список можно вызвать командой:
Сжатие архива gzip bzip2
Для сжатия архива используется одна из команд, первая это классическая “gzip”, а вторая bzip2. Команда bzip2 лучше сжимает архивы, но, требуется больше времени для сжатия архива. Существенную разницу вы увидите между данными командами лишь при сжатии объемных файлов, а при сжатии файлов малого размера, разница практически не заметна. Для вызова справки по данным командами необходимо выполнить команды:
Архивируем папки и файлы на практике
Теперь давайте перейдем к практике, предположим нам необходимо создать архив папки “test”, для этого необходимо выполнить команду tar с опцией “c”, как вы уже знаете, это опция создает архивы. Далее, дополним данную команду опцией “v”, что бы мы могли видеть процесс создания архива, и последняя опция “f”, это имя создаваемого файла. И так, вводим команду: “tar cvf archive.tar”, в данном примере слово “archive” означает название создаваемого вами архива, оно может быть любым. После чего указываем папки и файлы, которые нам необходимо заархивировать, в данном примере это будет папка “test”:
Таким образом вы можете архивировать сразу несколько директорий и файлов в один архив, для этого необходимо после выполнения команды “tar cvf archive.tar” просто перечислять их имена. Теперь давайте добавим в уже созданный чуть ранее архив файл “test_file”. Для этого служит опция “r”, то есть, теперь вместо опции “c” указываем “r”, остальные опции можно оставить без изменений:
После чего воспользуемся опцией “t” для просмотра содержимого архива. В директории “test” так же лежит файл, который называется точно так же, как и директория – “test”. Это отчетливо видно на скриншоте (test/test), и последняя строчка (test_file), это файл, который мы добавляли в уже созданный архив:
Распаковка архива
Мы научились создавать архивы, но, их так же необходимо и распаковывать, для этого служит опция “x”. Предположим, нам необходимо распаковать только один файл “test_file”. Для этого необходимо ввести команду “tar” далее указать необходимые опции “xvf”, далее указываем название архива, а после чего название файла, в нашем же случае это “test_file”. для наглядности я перенес данный архив в папку “dir_archive”, так что не удивляйтесь:
Для распаковки всего архива выполняем команду “tar”, далее уже знакомые опции “xvf” и название архива, в нашем же случае это “archive.tar”:
Если же вам необходимо распаковать архив в какую либо иную директорию, то для этого служит опция “-C”, далее указываем путь к нужной нам директории. Например, возьмем директорию “Документы”, вводим команду для распаковки архива “tar xvf archive.tar” далее указываем опцию “-C” и указываем путь к директории “Документы”:
Архивация и сжатие файлов и папок
Теперь переходим к сжатию архива, и начнем пожалуй с “gzip”. Для того что бы сжать архив, необходимо ввести команду “tar”, далее указать опции “zcvf”, если присмотритесь, то увидите, что к уже знакомым нам опциям просто добавляем “z”. После чего указываем имя архива, например “gzip_arch“, указываем расширения “tar.gz” и последним шагом указываем файлы и папки которые мы хотим заархивировать. Например, возьмем папку “test” и файл “test_file” и создадим сжатый архив под названием “gzip_arch”. Вводим команду:
Для сжатия в “bzip2” необходимо выполнить команду “tar”, затем указываем опции “jcvf”, обратите внимания, что в данном случае первой буквой идет “j”, далее указываем имя создаваемого архива и после чего указываем расширения. Для создания “bzip2” архива необходимо указать расширения “tar.bz2”. Теперь давайте создадим архив с тем же названием (gzip_arch) но при помощи bzip2:
Для того что бы посмотреть содержимое архива “tar.gz” необходимо ввести команду “tar” далее указать опцию “ztvf” и название архива. Собственно, разница составляет лишь в одной букве – “z”, а для просмотра архива “tar.bz2” необходимо ввести все ту же команду “tar” с опцией “jtvf” и название архива. Как и в прошлый раз, разница все го в одной букве – “j”.
Распаковка архивов
Переходим к распаковке созданных чуть ранее архивов, я их переместил в директорию “dir_archive”. Для распаковки архивов “tar.gz” используются опция “z”, а опция “x” означает распаковать данный архив. Далее указываем опции “vf” и название архива, в данном случае это “gzip_arch.tar.gz”: То есть, полная команда будет выглядеть так “tar zxvf gzip_arch.tar.gz”, так же, можно распаковать только определенный файл или папку, для этого просто указываете название папки или файла. Например, распакуем все тот же файл “test_file”:
Для распаковки архивов “tar.bz2” используются все те же опции но лишь заменив первую букву на “j”, далее все точно так же, указываете название архива, а в нашем случае это “gzip_arch.tar.bz2” и при необходимости файл. Если же вы хотите распаковать весь архив, то достаточно указать в обеих случаях только название самого архива. То есть, давайте распакуем архив “gzip_arch.tar.bz2”, по аналогии точно так же, только изменив опции распаковывается и “gzip_arch.tar.gz” весь целиком:
В том случае если вы хотите распаковать архив в другую директорию, то используйте уже знакомую вам опцию “-C”, как мы это делали ранее с архивами. Например, я хочу распаковать архив “gzip_arch.tar.bz2” в директорию “Загрузки”, ввожу команду для распаковки архива, затем указываю опцию “-C”, а затем путь до директории “Загрузки”:
Заключение
На первый взгляд вам может показаться что это все муторно и не понятно, да и зачем в наше время использовать терминал для подобных манипуляций? Но, на самом деле, работая в терминале вы можете сэкономить множество времени, так как создавая архив в терминале, вы можете в него упаковать только те файлы, которые вам необходимо. При этом, достаточно написать их названия, а используя графические версии архиваторов на это у вас может уйти немного больше времени. Да и как уже ранее говорилось, сила Linux в его терминале, и знания терминала порой очень вам может пригодится, так что не стоит его боятся.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X
Источник
Как заархивировать файлы и каталоги в Linux
Zip — это наиболее широко используемый формат архивных файлов, поддерживающий сжатие данных без потерь.
Zip-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов. Сжатые (заархивированные) файлы занимают меньше места на диске, их можно перенести с одного компьютера на другой быстрее, чем несжатые файлы. Zip-файлы можно легко извлечь в Windows, macOS и Linux с помощью утилит, доступных для всех операционных систем.
В этом руководстве мы покажем вам, как архивировать (сжимать) файлы и каталоги в Linux с помощью команды zip .
zip Команда
zip — это утилита командной строки, которая помогает создавать Zip-архивы.
Команда zip имеет следующий синтаксис:
Чтобы создать Zip-архив в определенном каталоге, пользователю необходимо иметь права на запись в этот каталог.
Zip-файлы не поддерживают информацию о владельце в стиле Linux. Извлеченные файлы принадлежат пользователю, выполняющему команду.
Чтобы сохранить право собственности на файл и права доступа, используйте команду tar .
Утилита zip не устанавливается по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить ее с помощью диспетчера пакетов вашего дистрибутива.
Установите Zip в Ubuntu и Debian
Установите Zip на CentOS и Fedora
Как архивировать файлы и каталоги
Чтобы заархивировать один или несколько файлов, укажите файлы, которые вы хотите добавить в архив, через пробел, как показано ниже:
По умолчанию команда zip печатает имена файлов, добавленных в архив, и метод сжатия. Мы объясним методы и уровень сжатия позже в этом руководстве.
При указании имени архива Zip, если вы опускаете расширение .zip оно будет добавлено автоматически, если имя архива не содержит точки. zip archivename.zip filename создаст архив с тем же именем, что и zip archivename filename .
Чтобы подавить вывод команды zip , используйте параметр -q :
Часто вы создаете Zip-архив каталога, включающего содержимое подкаталогов. Параметр -r позволяет рекурсивно просматривать всю структуру каталогов.
Чтобы создать Zip-архив каталога, вы должны использовать:
Вы также можете добавить несколько файлов и каталогов в один архив:
Методы и уровни сжатия
Метод сжатия Zip по умолчанию — deflate . Если утилита zip определяет, что файл нельзя сжать, она просто сохраняет файл в архиве, не сжимая его с помощью метода store . В большинстве дистрибутивов Linux утилита zip также поддерживает метод сжатия bzip2 .
Чтобы указать метод сжатия, используйте параметр -Z .
Команда zip позволяет указать уровень сжатия с помощью числа с префиксом от 0 до 9. Уровень сжатия по умолчанию -6 . При использовании -0 все файлы будут сохраняться без сжатия. -9 заставит команду zip использовать оптимальное сжатие для всех файлов.
Например, чтобы использовать уровень сжатия -9 , введите что-то вроде этого:
Чем выше уровень сжатия, тем интенсивнее процесс архивирования, и для его завершения потребуется больше времени.
Создание ZIP-файла, защищенного паролем
Если у вас есть конфиденциальная информация, которую необходимо сохранить в архиве, вы можете зашифровать ее с помощью параметра -e :
Вам будет предложено ввести и подтвердить пароль архива:
Создание разделенного Zip-файла
Представьте, что вы хотите сохранить Zip-архив на сервисе хостинга файлов, который имеет ограничение на размер загружаемого файла 1 ГБ, а ваш Zip-архив — 5 ГБ.
Вы можете создать новый разделенный Zip-файл, используя параметр -s с указанием размера. Множитель может быть k (килобайты), m (мегабайты), g (гигабайты) или t (терабайты).
Приведенная выше команда продолжит создание новых архивов в наборе после достижения указанного предельного размера.
Примеры ZIP
Создайте Zip-архив с именем archivename.zip, содержащий все файлы в текущем каталоге.
То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):
Создайте Zip-архив с именем archivename.zip содержащий все файлы MP3 в текущем каталоге, без сжатия файлов.
Выводы
В Linux вы можете создавать Zip-архивы с помощью команды zip .
Чтобы распаковать ZIP-архив в системе Linux, вы можете использовать команду unzip .
Если вы хотите узнать больше о Zip, посетите страницу Zip Man .
Источник
АРХИВАЦИЯ ФАЙЛОВ В LINUX
В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник. В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета. Научиться выполнять архивирование файлов в Linux через терминал очень важно, возможно это вам понадобиться, когда не будет доступа к графическому интерфейсу, или просто со временем в терминале станет более приятно работать.
В этой инструкции я хочу подробно рассмотреть утилиты для архивирования в Linux, мы рассмотрим не только самую популярную и универсальную утилиту — tar, но и другие менее известные, а также популярные алгоритмы сжатия.
АРХИВИРОВАНИЕ В LINUX
Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux. Архивирование — это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами. Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема — терминал.
Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.
Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.
Tar — это стандартная утилита, с помощью которой выполняется архивирование файлов Linux. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные параметры:
$ tar опцииf файл_для_записи /папка_файлами_для_архива
А теперь разберем основные опции:
- A — добавить файл к архиву
- c — создать архив в linux
- d — сравнить файлы архива и распакованные файлы в файловой системе
- j — сжать архив с помощью Bzip
- z — сжать архив с помощью Gzip
- r — добавить файлы в конец архива
- t — показать содержимое архива
- u — обновить архив относительно файловой системы
- x — извлечь файлы из архива
- v — показать подробную информацию о процессе работы
- f — файл для записи архива
- -C — распаковать в указанную папку
- —strip-components — отбросить n вложенных папок
Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте такую команду:
tar -cvf archive.tar.gz /path/to/files
А чтобы распаковать архив tar linux:
tar -xvf archive.tar.gz
Очень просто запомнить для упаковки используется опция c — Create, а для распаковки — x — eXtract.
Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
tar -zcvf archive.tar.gz /path/to/files
tar -zxvf archive.tar.gz
Например, рассмотрим как заархивировать папку в Linux:
tar -zcvf home.tar.gz
Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:
Также можно убрать сжатие:
Утилиты сжатия мы рассмотрим ниже.
Чтобы добавить файл в архив используйте:
tar -rvf archive.tar file.txt
Для извлечения одного файла синтаксис тот же:
tar -xvf archive.tar file.txt
Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:
tar -xvf archive.tar —wildcards ‘*.php’
По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:
tar -xvf archive.tar -C /path/to/dir
Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.
Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.
- -o — сохранять архив в файл вместо стандартного вывода
- -l — ограничить размер выходного файла
- -L — ограничить размер выходного файла и разбить его на части
- -n — имя архива не будет включено в заголовок
- -a — разрешить автоматическую генерацию заголовков
Примеры использования shar для того чтобы заархивировать папку linux:
Создаем shar архив:
shar file_name.extension > filename.shar
Распаковываем shar архив:
ar — утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.
- — d — удалить модули из архива
- — m — перемещение членов в архиве
- — p — напечатать специфические члены архива
- — q — быстрое добавление
- — r — добавить члена к архиву
- — s — создать индекс архива
- — a — добавить новый файл к существующему архиву
Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:
ar cr libmath.a substraction.o division.o
Теперь извлечем файлы из архива:
Таким образом, можно распаковать любую статическую библиотеку.
cpio — означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.
- -a — сбросить время обращения к файлам после их копирования
- -A — добавить файл
- -d — создать каталоги при необходимости
Пример использования. Создаем cpio архив:
file1.o file2.o file3.o
ls | cpio -ov > /path/to/output_folder/obj.cpio
Архивирование папки linux выполняется также само.
СЖАТИЕ АРХИВОВ В LINUX
Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них
Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:
$ gzip опции файл
$ gunzip опции файл
Теперь разберем опции:
- -c — выводить архив в стандартный вывод
- -d — распаковать
- -f — принудительно распаковывать или сжимать
- -l — показать информацию об архиве
- -r — рекурсивно перебирать каталоги
- -0 — минимальный уровень сжатия
- -9 — максимальный уровень сжатия
Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:
gzip -c файл > архив.gz
А теперь распакуем:
gunzip -c архив.gz
Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.
bzip2 — еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.
Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:
В текущем каталоге будет создан файл file.bz2
Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.
Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.
Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.
$ zip опции файлы
$ unzip опции архив
- -d удалить файл из архива
- -r — рекурсивно обходить каталоги
- -0 — только архивировать, без сжатия
- -9 — наилучший степень сжатия
- -F — исправить zip файл
- -e — шифровать файлы
Чтобы создать Zip архив в Linux используйте:
zip -r /path/to/files/*
А для распаковки:
Как видите архивирование zip в Linux не сильно отличается от других форматов.
Источник