- Команда tar и zip в Linux
- Архивация Tar в Linux
- Создание архива TAR
- Распаковать архив TAR
- Общая информация по работе с Tar
- Архивация Zip в Linux
- Создание ZIP архива
- Распаковать zip архив
- Практические примеры команды zip
- Есть много вещей, которые вы можете сделать с помощью команды Linux zip
- Как создать архив всех файлов в папке
- Как включить скрытые файлы в архив
- Как архивировать все файлы и подпапки в Zip-файле
- Как добавить новые файлы в существующий архивный архив
- Как обновить существующие файлы в заархивированном архиве
- Как удалить файлы из архива
- Как скопировать файлы из одного Zip-файла в другой
- Как использовать Pattern Matching и Piping для создания архива
- Как создать сплит архив
- Как настроить отчет о ходе процесса архивирования
- Как исправить файл Zip
- Как зашифровать архив
- Как показать, что будет в архиве
- Как проверить архив
- Как исключить файлы
- Как указать уровень сжатия
Команда tar и zip в Linux
Нет ничего лучше для запоминания информации, чем чтение, а потом написание этой информации в тетрадь, вот и я люблю прочитать и записать информацию в свою тетрадь nibbl.ru
Сегодня речь пойдет о такой вещи как архивация, а именно упаковка и распаковка таких форматов как: tar, gzip, zip и rar в в операционных системах Unix и Linux
нашу статью разобьем на разделы, что бы была удобная навигация.
Архивация в Linux
Linux или Линукс сейчас самая популярная система не только для системный администраторов, но уже и для большинства рядовых граждан, а причина банальна — уход от Микрософта на государственном уровне и повсеместное внедрение «свободного ПО российской разработки», но как бы не называли ее мы все понимаем, что единственное свободное ПО которое может заменить для рядового пользователя операционную систему для работы в офисе это семейство Линуксовых. Поэтому как говорится уже можно начинать ее изучать всем повсеместно)))) но давайте не уходить от темы, а вернемся к нашим баранам!
Хоть Linux и имеет графическую оболочку и даже уже можно скачать графические пакеты для работы с самыми популярными расширениями архиваторов, мы будем рассматривать работу с архивами на уровне консоли (но если кому надо сделаем обзор пакетов для работы не через консоль)
Архивация Tar в Linux
Tar — или как мы его называли архиватором таковым не является, причина тому, логика работы данного инструмента! это всего лишь упаковщик, а если быть точнее то задача tar создать контейнер в формате tar в который она помещает выбранные вами файлы (без сжатия). Но если Вам нужно эти данные ужать или сжать для уменьшения размера архива, тогда применяются дополнительные инструменты такие как Gzip или bzip2 (вы должны были обращать внимания, что скачивая пакеты или файлы они имели странный формат name-file.tar.gz ) Все дело в том, что принцип работы инструмента по сжатию данных, работает только в однопотоковом режиме, поэтому, что бы заархивировать много файлов и их сжать нам необходимо было их упаковать в TAR (один файл), а только потом прогнать через сжатие Gzip или bzip2 поэтому эти инструменты работают как Бонни и Клайд)
Создание архива TAR
Для начала начнем с запаковки архива Tar в Linux/ubuntu, и для этого надо запомнить шаблон или синтаксис команды:
tar [опции] [файлы или папки которые будем упаковывать]
Опции для создания архива tar:
- c (create) — создать архив
- f (file) — указать имя архива
- j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
- z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
- v (verbose) — выводит список прогресса
Для создания архива tar нам необходимы только две опции c и f, но если вы хотите видеть процесс упаковки файлов, то можете добавить ключ v и тогда вы увидите на экране бегущий список файлов (так сказать «аналог» виндовому прогрессу в виде процентов)
tar -cvf newfile.tar /foto
в данной команде мы указали создать архив newfile.tar и запаковать всю папку foto
В списке опций вы заметили два ключа j и z эти ключи используются как для сжатия в архив gzip или bzip2 если вам нужно сделать архивацию с сжатием то применяем следующую команду:
tar -cvjf newfile.tar /foto — создаст архив + сжатие newfile.tar.bz2
tar -cvzf newfile.tar /foto — создаст архив + сжатие newfile.tar.gz
Распаковать архив TAR
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив в linux/ubunta :
tar [опции] [файлы или папки которые будем распаковывать]
Опции для создания архива tar:
- x (extract) — извлечь файлы из архива
- f (file) — указать имя архива
- j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
- z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
- v (verbose) — выводит список прогресса
- С (в верхнем регистре) — указываем альтернативное место для разархивирования файлов
tar -xvjf newfile.tar.bz2 — распаковываем архив в категорию в которой находимся
tar -xvzf newfile.tar.gz -C /home/nibbl/desktop — распаковываем архив на рабочий стол
Общая информация по работе с Tar
- tar —help — вызов справки по командам и параметрам
- man tar — вызов расширенной документации
- официальная документация по команде tar — ссылка
Архивация Zip в Linux
Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip
но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо поставить пакет unzip
- sudo apt-get update && apt-get upgrade
- sudo apt-get install unzip
Создание ZIP архива
Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:
zip [опции] [файлы или папки которые будем упаковывать]
Опции для создания архива tar:
- r (recurse) — рекурсивное создание архива
- s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)
пример: zip -s 300m
на выходе получим:
file.zip (300 mb, master file)
file.001.zip (300 mb)
file.002.zip (300 mb)
file.003.zip (100 mb) - P (password) — запаролировать архив (можно использовать ключ e тогда пароль будете вводить в отдельной строке со звездочками )
пример: zip -P мойпароль -r file.zip ./home/nibbl/foto
пример2: zip -er file.zip ./home/nibbl/foto - x — исключаем файлы или каталоги из архива
- 1-9 — степень сжатия (где 1 без сжатия, а 9 лучшее сжатие)
zip –r -9 -P 123 — archive.zip /home/nibbl/desktop/myfile
— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123
Распаковать zip архив
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :
Опции для создания архива tar:
- d (directory) — указать директорию для разархивации
- l — вывести список файлов в архиве
- d — удалить определенный файл или каталог из уже сделанного архива
- v — показывает детальную информацию по файлам в архиве ()
unzip — распаковываем архив в категорию в которой находимся
unzip -d /home/nibbl/desktop — распаковываем архив на рабочий стол
Источник
Практические примеры команды 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 для дальнейшего сжатия файла. Это занимает больше времени, но может значительно сэкономить место.
Источник