- Практические примеры команды zip
- Есть много вещей, которые вы можете сделать с помощью команды Linux zip
- Как создать архив всех файлов в папке
- Как включить скрытые файлы в архив
- Как архивировать все файлы и подпапки в Zip-файле
- Как добавить новые файлы в существующий архивный архив
- Как обновить существующие файлы в заархивированном архиве
- Как удалить файлы из архива
- Как скопировать файлы из одного Zip-файла в другой
- Как использовать Pattern Matching и Piping для создания архива
- Как создать сплит архив
- Как настроить отчет о ходе процесса архивирования
- Как исправить файл Zip
- Как зашифровать архив
- Как показать, что будет в архиве
- Как проверить архив
- Как исключить файлы
- Как указать уровень сжатия
- 🐧 Как заархивировать все файлы в каталоге в системах Linux?
- Установка Zip
- На Debian/Ubuntu
- На REHL/CentOS
- Команда Zip
- Как заархивировать файлы в Linux
- Как сжимать каталоги Zip на Linux
- Как заархивировать папку в Linux
- Архивирование файлов в Linux
- Архивирование в Linux
- Сжатие архивов в Linux
- Выводы
Практические примеры команды zip
Есть много вещей, которые вы можете сделать с помощью команды Linux zip
Существует несколько различных способов сжатия файлов с помощью командной строки Linux. Эта статья содержит практические примеры, которые показывают, как использовать команду zip для сжатия и организации файлов в вашей файловой системе.
Сжатые файлы используются, когда вам нужно сэкономить место и копировать большие файлы из одного места в другое.
Если у вас есть 10 файлов размером 100 мегабайт, и вам нужно перенести их на FTP-сайт, передача может занять значительное время в зависимости от скорости вашего процессора. Если вы сжимаете все 10 файлов в один заархивированный архив, и сжатие уменьшает размер файла до 50 МБ на файл, то вам нужно только передать половину данных.
Как создать архив всех файлов в папке
Представьте, что у вас есть папка песен со следующими MP3-файлами:
Шоссе AC/DC в ад
Люблю голодного мужчину.mp3
Прогуляйся по тебе.mp3
Если тебе нужна кровь, ты ее получишь .mp3
Покажите вниз в огне.mp3
Сенсорный слишком много .mp3
Биение вокруг bush.mp3
Girls Got Rhythm.mp3
Эта простая команда Linux, которая иллюстрирует, как создать архив всех файлов в текущей папке с именем ACDC_Highway_to_Hell.zip:
Текст прокручивается вверх по экрану, показывая файлы по мере их добавления.
Как включить скрытые файлы в архив
Предыдущая команда хороша для архивирования всех файлов в папке, но она включает только файлы, которые не скрыты. Это не всегда так просто. Представьте, что вы хотите сжать домашнюю папку, чтобы ее можно было сохранить на USB-накопитель или внешний жесткий диск. Ваша домашняя папка содержит скрытые файлы.
Чтобы сжать все файлы, включая скрытые файлы в папке, выполните следующую команду:
Это создает файл с именем home.zip со всеми файлами в домашней папке. (Вы должны быть в домашней папке, чтобы это работало). Проблема этой команды в том, что она включает в себя только файлы в домашней папке, а не в папках, что приводит нас к следующему примеру.
Как архивировать все файлы и подпапки в Zip-файле
Чтобы включить все файлы и подпапки в архив, выполните следующую команду:
Как добавить новые файлы в существующий архивный архив
Если вы хотите добавить новые файлы в существующий архив или обновить файлы в архиве, используйте то же имя для файла архива при запуске команды zip.
Например, представьте, что у вас есть музыкальная папка с четырьмя альбомами в ней, и вы создаете архив с именем music.zip для хранения в качестве резервной копии. А теперь представьте, через неделю вы скачаете два новых альбома. Чтобы добавить новые альбомы в zip-файл, просто запустите ту же команду zip, что и на предыдущей неделе.
Для создания оригинального музыкального архива запустите следующий код:
zip -r music/home/yourname/music/
Чтобы добавить новые файлы в архив, снова запустите ту же команду.
Если в zip-файле содержится список файлов, а один из файлов на диске изменился, то исправленный файл обновляется в zip-файле.
Как обновить существующие файлы в заархивированном архиве
Если у вас есть zip-файл, который должен каждый раз содержать одни и те же имена файлов, и вы хотите обновить этот файл любыми изменениями, внесенными в эти файлы, то переключатель -f поможет вам сделать это. ,
Например, представьте, что у вас есть заархивированный файл со следующими файлами:
Теперь представьте, что в течение недели вы добавили два новых файла и изменили два файла так, чтобы папка/home/yourname/documents теперь выглядела так:
/home/ваше имя/документы/file4 (обновлено)
/home/ваше имя/документы/file5 (обновлено)
Когда вы выполните следующую команду, zip-файл будет содержать обновленные файлы (file4 и file5), но file7 и file8 не будут добавлены.
zip zipfilename -f -r/home/yourname/documents
Как удалить файлы из архива
Итак, вы создали большой zip-файл с сотнями файлов и теперь понимаете, что в zip-файле есть четыре или пять файлов, которые вам там не нужны. Без необходимости снова архивировать все эти файлы, вы можете просто запустить команду zip с переключателем -d следующим образом:
zip zipfilename -d [имя файла в архиве]
Например, если у вас есть файл в архиве с именем home/documents/test.txt, вы удалите его с помощью этой команды:
zip zipfilename -d home/documents/test.txt
Как скопировать файлы из одного Zip-файла в другой
Если у вас есть файлы в одном zip-файле, и вы хотите скопировать их в другой zip-файл, не извлекая их сначала и не разархивируя, используйте переключатель -u .
Предположим, у вас есть zip-файл с именем «Variousmusic.zip» с музыкой от разных исполнителей, одним из которых является AC/DC. Вы можете скопировать песни AC/DC из файла Variousmusic.zip в файл ACDC.zip, используя следующую команду:
zip Variousmusic.zip -U —out ACDC.zip «Back_In_Black.mp3»
Приведенная выше команда копирует файл «Back_In_Black.mp3» из различных музыкальных файлов.zip в ACDC.zip. Если zip-файл, в который вы копируете, не существует, он создается.
Как использовать Pattern Matching и Piping для создания архива
Следующий переключатель действительно полезен, потому что он позволяет вам использовать выходные данные других команд для вставки файлов в ваш zip-файл. Предположим, вы хотите создать файл с именем lovesongs.zip, который содержит каждую песню, в названии которой есть слово «любовь».
Чтобы найти файлы с любовью в заголовке, вы можете использовать следующую команду:
find/home/yourname/Music -name * love *
Приведенная выше команда не идеальна на 100 процентов, потому что она также подбирает слова типа «клевер», но вы поняли идею. Чтобы добавить все возвращенные результаты из вышеприведенной команды в zip-файл с именем lovesongs.zip, выполните эту команду:
find/home/yourname/Music -name * love * | zip lovesongs.zip — @
Как создать сплит архив
Если вы создаете резервную копию своего компьютера, но единственный носитель, на который у вас есть резервные копии, – это набор чистых DVD-дисков, у вас есть выбор. Вы можете сохранять файлы до тех пор, пока размер zip-файла не достигнет 4,8 гигабайта, и записать DVD-диск или создать нечто, называемое разделенным архивом, который продолжает создавать новые архивы в наборе после того, как он достигнет установленного вами предела.
zip mymusic.zip -r/home/myfolder/Music -s 670 м
Как настроить отчет о ходе процесса архивирования
Существуют различные способы настройки вывода, который появляется во время выполнения архивирования.
Доступны следующие переключатели:
- -db = показывает, сколько байтов было заархивировано и сколько осталось
- -dc = отображает количество заархивированных файлов и сколько их осталось
- -dd = отображает точки для каждых 10 МБ файла, который был заархивирован
- -ds = устанавливает частоту появления точек
- -du = отображает несжатый размер каждого файла
zip myzipfilename.zip -dc -r/home/music
Как исправить файл Zip
Если у вас поврежден zip-архив, вы можете попытаться исправить его с помощью команды -F , а в случае неудачи – команды FF .
Это полезно, если вы создали разделенный архив с помощью переключателя -s и потеряли один из файлов архива.
Например, попробуйте сначала это:
zip -F myfilename.zip —out myfixedfilename.zip
zip -FF myfilename.zip —out myfixedfilename.zip
Как зашифровать архив
Если у вас есть конфиденциальная информация, которую вы хотите сохранить в zip-файле, используйте команду -e для ее шифрования. Вас попросят ввести пароль и повторить пароль.
zip myfilename.zip -r/home/wikileaks -e
Как показать, что будет в архиве
Если вы знаете, что собираетесь создавать большой архив, убедитесь, что в zip-файл будут добавлены правильные файлы. Вы можете увидеть ожидаемые результаты команды zip, указав переключатель – sf .
zip myfilename.zip -r/home/music/-sf
Как проверить архив
После резервного копирования файлов в zip-файл заманчиво сэкономить место на диске, удалив исходные файлы. Прежде чем сделать это, рекомендуется проверить работоспособность zip-файла.
Вы можете использовать переключатель -T для проверки правильности zip-файла.
zip myfilename.почтовый индекс -T
Вывод этой команды, когда архив недействителен, может выглядеть примерно так:
- предупреждение zip: отсутствует подпись конца – вероятно, не zip-файл
Помните, что вы можете попробовать команду -F, чтобы исправить поврежденные zip-файлы.
Стоит отметить, что -T может выдавать ложные срабатывания в том смысле, что он говорит, что zip-файл поврежден, хотя при его открытии вы можете извлечь все файлы.
Как исключить файлы
Иногда вы хотите исключить определенные файлы из zip-файла. Например, если вы копируете файлы со своего телефона или цифровой камеры, у вас есть смесь видео и изображений. Возможно, вы захотите сжать фотографии в photos.zip и видео в videos.zip.
Вот один из способов исключить видео при создании photos.zip
zip photos.zip -r/home/photos/-x * .mp4
Как указать уровень сжатия
Когда вы сжимаете файлы в zip-файл, система решает, следует ли сжимать файл или просто сохранить его. Например, файлы MP3 уже сжаты, поэтому нет смысла их дополнительно сжимать; они обычно хранятся как внутри zip-файла.
Однако вы можете указать уровень сжатия от 0 до 9 для дальнейшего сжатия файла. Это занимает больше времени, но может значительно сэкономить место.
Источник
🐧 Как заархивировать все файлы в каталоге в системах Linux?
Zip – это утилита сжатия данных, поддерживаемая всеми дистрибутивами Linux.
Zip-архивы относятся к контейнерным архивам, содержащим один или несколько сжатых файлов и каталогов.
Файлы Zip являются кроссплатформенными, что позволяет создавать zip-архивы в Windows, Linux и macOS с помощью различных утилит.
Кроме того, файлы zip-архивов занимают меньше места, что облегчает их перенос и хранение.
В Linux для создания zip-архивов мы используем утилиту zip archive. В этом руководстве мы рассмотрим, как создавать zip-архивы в Linux с помощью утилиты zip.
Установка Zip
В зависимости от дистрибутива Linux, вам нужно будет установить утилиту zip. Поскольку все дистрибутивы Linux поддерживают её, вы можете использовать менеджер пакетов для её установки.
На Debian/Ubuntu
В Debian используйте команду:
На REHL/CentOS
Для CentOS и семейства REHL используйте команду:
Команда Zip
Команда zip проста в использовании.
Общий синтаксис команды следующий:
Чтобы создать zip-архив из нескольких файлов, передайте их в списке (разделенных пробелом) после имени zip-файла.
Также полезно убедиться, что у вас есть права на запись в директории, в которой вы создаете zip-файл.
Как заархивировать файлы в Linux
Мы можем заархивировать файлы в каталоге таким образом:
Приведенная выше команда отображает имя файла, добавленного в архив, и метод сжатия.
Утилита Zip автоматически добавляет расширение .zip к имени файла архива, если оно не указано явно.
Как сжимать каталоги Zip на Linux
Вы можете сжать каталоги и соответствующие подкаталоги с помощью флага -r.
Флаг -r указывает zip на рекурсивный обход всего каталога.
Например, рассмотрим каталог /var/log.
Чтобы создать архив всех файлов и каталогов, мы используем команду:
Источник
Как заархивировать папку в Linux
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 9 человек(а).
Количество просмотров этой статьи: 43 515.
Самый простой способ передать несколько файлов из Linux-системы — это заархивировать их с помощью команды tar (имейте в виду, что файлы в таком архиве не сжимаются). Если заархивировать папку (каталог), несколько файлов превратятся в один файл, который можно передать, сохранить или сжать, чтобы уменьшить его размер.
- tar — команда, которая запускает архиватор Tar.
- c — опция, которая отвечает за создание файла с расширением .tar. Эта опция всегда идет первой.
- v — опция, которая отвечает за вывод на экран подробной информации. То есть в процессе архивирования на экране будут отображаться файлы, которые отправляются в файл с расширением .tar. Вводите эту опцию по желанию.
- f — опция, которая отвечает за присвоение имени файлу с расширением .tar. Эта опция всегда идет последней.
- Имя.tar — это имя архива. Введите любое имя по своему желанию, но в конце имени не забудьте добавить расширение .tar . К имени файла можно также добавить путь к файлу, если вы хотите создать архив в другой директории (то есть отличной от текущей).
- /путь/к/каталогу — это путь к каталогу, из которого создается архив. Этот путь соотносится с вашим текущим каталогом. Например, если полный путь
/home/user/Pictures , а вы находитесь в каталоге /home , введите /user/Pictures . Имейте в виду, что все подкаталоги также будут включены.
Источник
Архивирование файлов в 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 не сильно отличается от других форматов.
Выводы
Теперь вы знаете все что нужно об архивации файлов в Linux. Мы рассмотрели только консольные команды, так сказать, чтобы была понятна суть. В графическом интерфейсе все еще проще. Если остались вопросы — задавайте их в комментариях.
Источник