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

click fraud protection

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

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

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

Команда Linux Zip

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

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

AC / DC шоссе в ад

Ночной Prowler.mp3.

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

Получите это Hot.mp3.

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

Дорога в ад.mp3.

Если хочешь крови, ты ее получил .mp3.

Show down in flames.mp3.

Touch too much.mp3.

Бить вокруг да около .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-файл, который должен каждый раз содержать одни и те же имена файлов, и вы хотите обновить этот файл любыми изменениями, внесенными в эти файлы, то -f переключатель поможет вам в этом.

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

/home/yourname/documents/file1.

/home/yourname/documents/file2.

/home/yourname/documents/file3.

/home/yourname/documents/file4.

/home/yourname/documents/file5.

/home/yourname/documents/file6.

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

/home/yourname/documents/file1.

/home/yourname/documents/file2.

/home/yourname/documents/file3.

/ home / yourname / documents / file4 (обновлено)

/ home / yourname / documents / file5 (обновлено)

/home/yourname/documents/file6.

/home/yourname/documents/file7.

/home/yourname/documents/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 имя файла zip -d home / documents / test.txt. 

Как копировать файлы из одного ZIP-файла в другой

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

Предположим, у вас есть zip-файл с именем «differentmusic.zip» с музыкой от разных исполнителей, одним из которых является AC / DC. Вы можете скопировать песни AC / DC из файла differentmusic.zip в файл ACDC.zip, используя следующую команду:

zip differentmusic.zip -U --out ACDC.zip "Back_In_Black.mp3"

Вышеупомянутая команда копирует файл "Back_In_Black.mp3" из differentmusic.zip в ACDC.zip. Если zip-файл, в который вы копируете, не существует, он создается.

Как использовать сопоставление с образцом и трубопровод для создания архива

Следующий переключатель действительно полезен, потому что он позволяет вам использовать вывод других команд для вставки файлов в ваш 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 / Music -s 670m. 

Как настроить отчет о ходе процесса архивирования

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

Доступны следующие переключатели:

  • -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.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.