Существует несколько способов сжатия файлов с помощью командной строки Linux. В этой статье приводятся практические примеры, показывающие, как использовать команду zip для компактного и упорядочивания файлов в вашей файловой системе.
Файлы с zip-файлами используются, когда вам нужно экономить место и копировать большие файлы из одного места в другое.
Если у вас есть 10 файлов со всеми 100 мегабайтами, и вам необходимо перенести их на ftp-сайт, передача может занять значительное количество времени в зависимости от скорости вашего процессора.
Если вы сжимаете все 10 файлов в один ZIP-архив, а сжатие уменьшает размер файла до 50 МБ на файл, тогда вам нужно передавать только половину объема данных.
Как создать архив всех файлов в папке
Представьте, что у вас есть папка с песнями со следующими файлами MP3:
Ночная прогулка.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