Как сжать файлы с помощью командной строки Linux

Существует несколько различных способов сжатия файлов с помощью командной строки Linux. Эта статья содержит практические примеры, которые показывают, как использовать команду zip для сжатия и организации файлов в вашей файловой системе.

Сжатые файлы используются, когда вам нужно сэкономить место и копировать большие файлы из одного места в другое.

Если у вас есть 10 файлов размером 100 мегабайт, и вам нужно перенести их на FTP-сайт, передача может занять значительное время в зависимости от скорости вашего процессора. Если вы сжимаете все 10 файлов в один заархивированный архив, и сжатие уменьшает размер файла до 50 МБ на файл, то вам нужно только передать половину данных.

Как создать архив всех файлов в папке

Представьте, что у вас есть папка песен со следующими MP3-файлами:

Шоссе AC / DC в ад

Ночной Prowler.mp3

Люблю голодного мужчину.mp3

Get It Hot.mp3

Прогуляйся по тебе.mp3

Шоссе в ад.mp3

Если тебе нужна кровь, ты ее получишь .mp3

Покажите вниз в огне.mp3

Сенсорный слишком много .mp3

Биение вокруг bush.mp3

Girls Got Rhythm.mp3

Эта простая команда Linux, которая иллюстрирует, как создать архив всех файлов в текущей папке с именем ACDC_Highway_to_Hell.zip:

zip ACDC_Highway_to_Hell *

Текст прокручивается вверх по экрану, показывая файлы по мере их добавления.

Как включить скрытые файлы в архив

Предыдущая команда хороша для архивирования всех файлов в папке, но она включает только файлы, которые не скрыты. Это не всегда так просто. Представьте, что вы хотите сжать домашнюю папку, чтобы ее можно было сохранить на USB-накопитель или внешний жесткий диск. Ваша домашняя папка содержит скрытые файлы.

Чтобы сжать все файлы, включая скрытые файлы в папке, выполните следующую команду:

почтовый индекс *. *

Это создает файл с именем home.zip со всеми файлами в домашней папке. (Вы должны быть в домашней папке, чтобы это работало). Проблема этой команды в том, что она включает в себя только файлы в домашней папке, а не в папках, что приводит нас к следующему примеру.

Как архивировать все файлы и подпапки в Zip-файле

Чтобы включить все файлы и подпапки в архив, выполните следующую команду:

zip -r домой.

Как добавить новые файлы в существующий архивный архив

Если вы хотите добавить новые файлы в существующий архив или обновить файлы в архиве, используйте то же имя для файла архива при запуске команды zip.

Например, представьте, что у вас есть музыкальная папка с четырьмя альбомами в ней, и вы создаете архив с именем music.zip для хранения в качестве резервной копии. А теперь представьте, через неделю вы скачаете два новых альбома. Чтобы добавить новые альбомы в zip-файл, просто запустите ту же команду zip, что и на предыдущей неделе.

Для создания оригинального музыкального архива запустите следующий код:

zip -r музыка / дом / твое имя / музыка /

Чтобы добавить новые файлы в архив, снова запустите ту же команду. 

Если в zip-файле содержится список файлов, а один из файлов на диске изменился, то исправленный файл обновляется в zip-файле. 

Как обновить существующие файлы в заархивированном архиве

Если у вас есть zip-файл, который должен каждый раз содержать одни и те же имена файлов, и вы хотите обновить этот файл любыми изменениями, внесенными в эти файлы, тогда Переключатель поможет вам сделать это.

Например, представьте, что у вас есть заархивированный файл со следующими файлами:

/ Главная / вашеимя / документы / file1

/ Главная / вашеимя / документы / file2

/ Главная / вашеимя / документы / file3

/ Главная / вашеимя / документы / file4

/ Главная / вашеимя / документы / file5

/ Главная / вашеимя / документы / file6

Теперь представьте, что в течение недели вы добавили два новых файла и изменили два файла так, чтобы папка / home / yourname / documents теперь выглядела так:

/ Главная / вашеимя / документы / file1

/ Главная / вашеимя / документы / file2

/ Главная / вашеимя / документы / file3

/ home / ваше имя / документы / file4 (обновлено)

/ home / ваше имя / документы / file5 (обновлено)

/ Главная / вашеимя / документы / file6

/ Главная / вашеимя / документы / file7

/ Главная / вашеимя / документы / file8

Когда вы выполните следующую команду, 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 differentmusic.zip -U --out ACDC.zip "Back_In_Black.mp3"

Приведенная выше команда копирует файл «Back_In_Black.mp3» из различных музыкальных файлов.zip в ACDC.zip. Если zip-файл, в который вы копируете, не существует, он создается. 

Как использовать Pattern Matching и Piping для создания архива

Следующий переключатель действительно полезен, потому что он позволяет вам использовать выходные данные других команд для вставки файлов в ваш zip-файл. Предположим, вы хотите создать файл с именем lovesongs.zip, который содержит каждую песню, в названии которой есть слово «любовь».

Чтобы найти файлы с любовью в заголовке, вы можете использовать следующую команду:

найти / home / yourname / Music -name * love *

Приведенная выше команда не идеальна на 100 процентов, потому что она также подбирает слова типа «клевер», но вы поняли идею. Чтобы добавить все возвращенные результаты из вышеприведенной команды в zip-файл с именем lovesongs.zip, выполните эту команду:

найти / home / yourname / Music -name * love * | zip lovesongs.zip - @

Как создать сплит архив

Если вы создаете резервную копию своего компьютера, но единственный носитель, на который у вас есть резервные копии, — это набор чистых DVD-дисков, у вас есть выбор. Вы можете сохранять файлы до тех пор, пока размер zip-файла не достигнет 4,8 гигабайта, и записать DVD-диск или создать нечто, называемое разделенным архивом, который продолжает создавать новые архивы в наборе после того, как он достигнет установленного вами предела.

Например:

zip mymusic.zip -r / home / myfolder / Музыка -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-файле, используйте Команда, чтобы зашифровать его. Вас попросят ввести пароль и повторить пароль.

Например:

zip myfilename.zip -r / home / wikileaks -e

Как показать, что будет в архиве

Если вы знаете, что собираетесь создавать большой архив, убедитесь, что в zip-файл будут добавлены правильные файлы. Вы можете увидеть ожидаемые результаты команды zip, указав -С.Ф. переключатель.

Например:

zip myfilename.zip -r / home / music / -sf

Как проверить архив

После резервного копирования файлов в zip-файл заманчиво сэкономить место на диске, удалив исходные файлы. Прежде чем сделать это, рекомендуется проверить работоспособность zip-файла.

Вы можете использовать -T переключитесь, чтобы проверить, что почтовый файл действителен.

Например:

zip myfilename.zip -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 для дальнейшего сжатия файла. Это занимает больше времени, но может значительно сэкономить место.

zip myfiles.zip -r / home -5
Ссылка на основную публикацию