Skip to main content

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

Распаковка Архивов при помощи одной команды (extract) в терминале (Май 2024)

Распаковка Архивов при помощи одной команды (extract) в терминале (Май 2024)

:

Anonim

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

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

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

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

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

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

AC / DC Highway to Hell
Ночная прогулка.mp3
Любовь голодная man.mp3
Get It Hot.mp3
Прогулка по тебе.mp3
Дорога в ад.mp3
Если вы хотите крови, вы получили это.mp3
Показать в пламени.mp3
Нажмите слишком много.mp3
Избиение вокруг куста.mp3
Девушки получили ритм.mp3

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

zip ACDC_Highway_to_Hell *

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

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

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

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

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

zip home *. *

Это создает файл с именем home.zip со всеми файлами в домашней папке.

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

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

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

zip -r домой.

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

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

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

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

zip -r music / home / yourname / music /

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

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

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

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

Например, представьте, что у вас есть zipped-файл со следующими файлами:

/ Главная / вашеимя / документы / file1
/ Главная / вашеимя / документы / file2
/ Главная / вашеимя / документы / file3
/ Главная / вашеимя / документы / file4
/ Главная / вашеимя / документы / file5
/ Главная / вашеимя / документы / file6

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

/ Главная / вашеимя / документы / file1
/ Главная / вашеимя / документы / file2
/ Главная / вашеимя / документы / file3
/ home / yourname / documents / file4 (обновлено)
/ home / yourname / documents / file5 (обновлено)
/ Главная / вашеимя / документы / file6
/ Главная / вашеимя / документы / file7
/ Главная / вашеимя / документы / file8

Когда вы запустите следующую команду, zip-файл будет содержать обновленные файлы (file4 и file5), но файлы file7 и file8 не будут добавлены.

zip zipfilename -f -r / home / yourname / documents

Как удалить файлы из архива Zipped

Таким образом, вы создали массивный 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-файлы из файла differentmusic.zip в файл ACDC.zip, используя следующую команду:

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

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

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

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

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

find / home / yourname / Music -name * love *

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

find / home / yourname / Music -name * love * | zip lovesongs.zip - @

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

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

Например:

zip mymusic.zip -r / главная / myfolder / Music -s 670m

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

Существуют различные способы настройки вывода, который появляется при запуске zipping.

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

  • -db = показывает, сколько байтов было заархивировано и сколько осталось оставить
  • -dc = отображает количество файлов, заархивированных и сколько осталось оставить
  • -dd = отображает точки для каждых 10 МБ файла, который имеет zipped
  • -ds = устанавливает, как часто появляются точки
  • -du = отображает несжатый размер каждого файла

Например:

zip myzipfilename.zip -dc -r / главная / музыка

Как исправить файл 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, указав -С.Ф. переключатель.

Например:

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

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

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

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

Например:

zip myfilename.zip -T

Вывод этой команды при недопустимом архиве может выглядеть примерно так:

  • zip warning: отсутствует подпись конца - возможно, не zip-файл

Помните, вы можете попробовать команду -F исправить сломанные файлы zip.

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

Как исключить файлы

Иногда вы хотите исключить определенные файлы из zip-файла. Например, если вы копируете файлы со своего телефона или цифровой камеры, у вас есть смесь видео и изображений. Возможно, вы захотите закрепить фотографии на photos.zip и видео на videos.zip.

Вот один из способов исключить видео при создании photos.zip

zip photos.zip -r / главная / фотографии / -x * .mp4

Как указать уровень сжатия

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

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

zip myfiles.zip -r / home -5