Сжатие файлов в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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

По завершении этого практического занятия вы научитесь:

  • Создавать и организовывать файлы для сжатия
  • Использовать команду zip для сжатия нескольких файлов
  • Проверять целостность сжатого архива

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/CompressionandArchivingGroup -.-> linux/zip("Compressing") linux/CompressionandArchivingGroup -.-> linux/unzip("Decompressing") subgraph Lab Skills linux/ls -.-> lab-271451{{"Сжатие файлов в Linux"}} linux/touch -.-> lab-271451{{"Сжатие файлов в Linux"}} linux/cd -.-> lab-271451{{"Сжатие файлов в Linux"}} linux/pwd -.-> lab-271451{{"Сжатие файлов в Linux"}} linux/mkdir -.-> lab-271451{{"Сжатие файлов в Linux"}} linux/zip -.-> lab-271451{{"Сжатие файлов в Linux"}} linux/unzip -.-> lab-271451{{"Сжатие файлов в Linux"}} end

Создание директории проекта и примеров файлов

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

Сначала убедитесь, что вы находитесь в своей домашней директории, используя команду cd:

cd ~

Затем создайте новую директорию с именем project с помощью команды mkdir:

mkdir project

Теперь перейдите в только что созданную директорию project:

cd project

Теперь вы должны находиться в директории /home/labex/project. Вы можете проверить свое текущее местоположение с помощью команды pwd:

pwd

Вы должны увидеть следующий вывод:

/home/labex/project

Теперь давайте создадим несколько примеров файлов, которые мы будем сжимать позже. Команда touch позволяет нам создавать пустые файлы:

touch report.txt data.csv image.jpg

Давайте проверим, были ли файлы успешно созданы, используя команду ls:

ls

Вы должны увидеть следующий вывод:

data.csv  image.jpg  report.txt

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

Сжатие файлов с помощью команды zip

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

Базовый синтаксис команды zip выглядит следующим образом:

zip [options] [archive_name] [file(s) to include]

Где:

  • [options] - дополнительные параметры, которые изменяют поведение команды
  • [archive_name] - имя zip-файла, который вы хотите создать
  • [file(s) to include] - файлы, которые вы хотите добавить в архив

Давайте сжмем файлы, которые вы создали на предыдущем этапе. Убедитесь, что вы находитесь в директории /home/labex/project:

cd ~/project

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

zip project.zip report.txt data.csv image.jpg

Эта команда создаст новый файл с именем project.zip, содержащий три указанных вами файла.

После выполнения команды вы должны увидеть вывод, похожий на следующий:

  adding: report.txt (stored 0%)
  adding: data.csv (stored 0%)
  adding: image.jpg (stored 0%)

Примечание: В выводе может быть указано "stored 0%" вместо "deflated" с процентом, так как наши примеры файлов пусты. В случае с реальными файлами, содержащими данные, вы бы увидели проценты сжатия, показывающие, сколько пространства было сохранено.

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

ls -l

Эта команда должна показать файлы в директории, включая только что созданный файл project.zip:

total 4
-rw-r--r-- 1 labex labex    0 Aug  1 12:00 data.csv
-rw-r--r-- 1 labex labex    0 Aug  1 12:00 image.jpg
-rw-r--r-- 1 labex labex  558 Aug  1 12:01 project.zip
-rw-r--r-- 1 labex labex    0 Aug  1 12:00 report.txt

Поздравляем! Вы успешно сжали файлы в zip-архив.

Проверка целостности zip-архива

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

В Linux есть удобные инструменты для проверки zip-архивов. Команда unzip с разными параметрами может быть использована для проверки и вывода списка содержимого zip-файла.

Сначала давайте проверим целостность zip-файла с помощью параметра -t:

unzip -t project.zip

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

Вы должны увидеть вывод, похожий на следующий:

Archive:  project.zip
    testing: report.txt               OK
    testing: data.csv                 OK
    testing: image.jpg                OK
No errors detected in compressed data of project.zip.

Этот вывод подтверждает, что архив действителен и все файлы в нем не повреждены.

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

unzip -l project.zip

Параметр -l означает "list" (список) и показывает все файлы, содержащиеся в архиве, без их извлечения.

Вы должны увидеть вывод, похожий на следующий:

Archive:  project.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2023-08-01 12:00   report.txt
        0  2023-08-01 12:00   data.csv
        0  2023-08-01 12:00   image.jpg
---------                     -------
        0                     3 files

Этот вывод показывает файлы, включенные в архив, а также их размеры и временные метки.

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

  1. Они подтверждают, что процесс сжатия прошел успешно.
  2. Они проверяют, что все нужные файлы включены в архив.
  3. Они гарантируют, что архив не поврежден и может быть правильно извлечен позже.

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

## Это только для демонстрации, вам не нужно запускать эту команду в рамках этого практического занятия
## unzip project.zip

Эта команда извлечет все файлы из архива в текущую директорию.

Резюме

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

В этом практическом занятии были рассмотрены следующие ключевые концепции:

  1. Создание и организация проектной директории с примерами файлов для подготовки к сжатию.
  2. Использование команды zip для сжатия нескольких файлов в один архив.
  3. Проверка целостности zip-архива с помощью команды unzip -t.
  4. Вывод списка содержимого zip-архива с помощью команды unzip -l.

Эти навыки ценны в многих реальных сценариях, таких как:

  • Создание резервных копий важных файлов.
  • Эффективное обмен несколькими файлами.
  • Сокращение использования дискового пространства.
  • Организация связанных файлов вместе.

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

По мере дальнейшего изучения Linux вы, возможно, захотите изучить дополнительные утилиты сжатия, такие как gzip, tar и bzip2, которые предлагают различные алгоритмы и функции сжатия для конкретных сценариев использования.