Основы Linux.Часть 27 (архивирование и сжатие файлов)

Как мне заархивировать папку в Linux? Как мне сжать каталог в Linux?

Подробный обзор

Команда tar в Linux

В качестве инструмента для архивации данных в Linux используются разные программы. Например архиватор Zip Linux, приобретший большую популярность из-за совместимости с ОС Windows. Но это не стандартная для системы программа. Поэтому хотелось бы осветить команду tar Linux — встроенный архиватор.

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

Немного истории

В «сумрачные» времена Windows-98 пользователям приходилось сталкиваться с архиваторами чаще всего. Интернет в ту пору был дорогим и медленным, а потому качественно сжатый файл позволял не только сократить время загрузки, но и существенно сэкономить ваши денежные средства.

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

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

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

Комментирование приветствуется.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

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

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

1. С помощью команды touch:

Вводим команду touch, затем путь и название нового файла.

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

touch /путь/к/файлу/название_файла

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

2. С помощью перенаправления стандартного потока вывода любой команды

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • О перенаправлении стандартных потоках вывода в файл более подробно будет рассказано в одной из следующих статей о терминале Linux.
  • Создать файл можно также перенаправлением вывода любой команды в файл.
  • В общем виде команда будет следующей:

какая_нибудь_команда > /путь/к/файлу/наименование_файла

  1. То есть, команда с выводом, затем галочка вправо >, означающая перенаправление вывода команды в файл и путь к файлу.
  2. Например, перенаправим вывод справки команды ls в файл, который будет создан (а если такой файл есть, то он будет полностью перезаписан):
  3. Но это мы создали не пустой файл, а если хотим создать пустой, то воспользуемся командой echo c переданной ей пустой строкой (две одинарных ковычки) и перенаправим это в файл:
Читайте также:  Как увеличить внутреннюю память на Андроид телефоне или планшете

3. С помощью любого текстового редактора, консольного или с графическим интерфейсом

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • Передаем команду запуска любого текстового редактора и путь к файлу.
  • Самый простой консольный текстовый редактор это nano:
  • Или с помощью текстового редактора с графическим интерфейсом, который установлен в Gnome по умолчанию:
  • Про манипуляции с текстом более подробно в одной из следующих статей о терминале Linux.

Создание директорий (каталогов) в терминале Linux

  1. Создание каталогов выполняется командой «mkdir» (от англ. make directory):
  2. Создать директорию с именем «dir1»:
  3. Создать две директории одновременно:
  4. Создать дерево директорий:

Удаление файлов и директорий в терминале Linux

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Для удаления директорий используется команда «rmdir» (от англ. remove directory):

Удаляются директории аналогично, как и создаются. Такие же команды.

Удаление файлов в терминале Linux

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Для удаления файлов используется команда «rm» (от англ. remove).

  • Работает очень просто, пишете команду rm и путь к файлу, который хотите удалить:
  • Удалить файл с именем «file1»:

Но команда «rm» позволяет удалять не только файлы, но и директории (каталоги) вместе с их содержимым.

  1. Удалить директорию с именем «dir1» и рекурсивно всё её содержимое:
  2. Удалить две директории и рекурсивно их содержимое:
  3. Также можно добавить параметр -f, который означает, что при удалении не будет запрашиваться подтверждение на удаление. Команды будут выглядеть так:
Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Перемещение и переименование файлов и директорий в терминале Linux

Для перемещения и переименовывания файлов и директорий (каталогов) используется команда «mv» (от англ. move).

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

mv название_файла новое_название

Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий
  • Чтобы переместить файл:

Копирование файлов и директорий в терминале Linux

Для копирования используется команда «cp» (от англ. copy).

  1. Скопировать файл file1 и назвать его file2:
  2. Копировать директорию dir1 в директорию dir2:
  3. Копировать файл с именем file1 в директорию c именем dir1:
Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий

Справка о командах

  • У каждой команды присутствует множество параметров, чтобы узнать их, просто наберите команду и параметр —help:
  • Например:

Замена текста и данных в файлах Linux

Для взаимодействия с текстом внутри файлов есть команда sed. Команд множество, но чаще всего может понадобится команда по замене определенного текста в конкретном файле.

Например:

sed ‘s/odin/dva/g’

Заменяет в файле все слова «odin» на слова «dva».

Иногда требуется раскомментировать какую-то строчку в файле и для этого не обязательно открывать файл и редактировать его. Достаточно знать данные в нём, которые нужно раскомментировать.

sed -i "s/^#znachenie/znachenie/g" /etc/

где «^» — означает начало строки, # — символ, отвечающий за разрешение/запрещение чтения команд определенного языка программирования в выполняющем для этого файле.

Шаг Распаковка Vmware Tools

Теперь, когда у нас есть базовое представление о работе с этими инструментами, давайте использовать их на реальном примере. Многие, включая нас, используют в качестве системы виртуализации Vmware Workstation. Она позволяет запускать множество операционных систем на одной физической машине. И на этом поприще у VMWare почти нет конкурентов.

Если вы используете Vmware Workstation, то вы, вероятно, знаете, что Vmware рекомендует вам скачать и установить набор своих утилит Vmware Tools. Если вы установите Vmware Tools, то ваша гостевая операционная система интегрируется в вашу рабочую операционную систему намного лучше. Это включает в себя лучшую графическую производительность, возможность использования функций Drag-and-Drop, общие папки, лучшую производительность мыши и некоторые другие вещи.

Читайте также:  Что такое Swappiness в Linux? (и как это изменить)

Теперь, когда вы скачали Vmware Tools, вы увидите, что это tarball, сжатый с помощью gzip. Мы определяем это по расширению файла — Для того, чтобы распаковать этот архив и получить все содержащиеся в нем файлы мы можем воспользоваться следующей командой:

kali > tar -xvzf

Шаг Распаковка Vmware Tools

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

  • tar — команда архивирования
  • -x означает извлечение файлов
  • -v означает подробный вывод о результатах разархивации
  • -z используется для декомпрессии
  • -f направляет команду на файл, который за ней следует

Когда мы нажимаем Enter, сжатый tarball распаковывается и файлы извлекаются. Из архива Vmware в результате работы этой команды будет извлечено сотни файлов. Теперь нам остается только запустить скрипт для установки утилит, входящих в пакет Vmware Tools.

Архивирование и сжатие — это ключевые навыки работы в Linux, которые любой хакер или системный администратор должен знать и использовать в своей работе. Мы продолжаем изучение основ Linux, поэтому обязательно возвращайтесь!

мин для чтенияКак архивировать файлы и каталоги в Linux

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

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

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

Команда Zip

Zip – это утилита, которая помогает вам создавать ZIP-архивы.

Команда zip имеет следующую синтаксическую форму:

zip OPTIONS ARCHIVE_NAME FILES

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

Утилита zip по умолчанию не установлена ​​в большинстве дистрибутивов Linux, но вы можете легко установить ее, используя менеджер пакетов вашего дистрибутива.

Как архивировать файлы и каталоги

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

zip filename1 filename2 filename3adding: filename1 (deflated 63%)adding: filename2 (stored 0%)adding: filename3 (deflated 38%)

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

При указании имени zip-архива, если вы опустите расширение .zip, оно будет добавлено автоматически, если имя архива не содержит точку. zip archive filename создаст архив с тем же именем, что и zip archivename filename.

Если вы хотите подавить вывод команды zip, используйте -qпараметр:

Читайте также:  Manjaro 21, Новости и легкая загрузка Linux на базе Arch

zip -q filename1 filename2 filename3

Чаще всего вы создаете ZIP-архив каталога, включая содержимое подкаталогов. Эти опции -r позволяют пересекать всю структуру каталогов рекурсивно. Чтобы создать zip-архив каталога, вы должны использовать:

zip -r directory_name

Вы также можете добавить несколько файлов и каталогов в один архив:

zip -r directory_name1 directory_name2 file1 file1

Методы и уровни сжатия

Метод сжатия zip по умолчанию – deflate. Если утилита zip определяет, что файл не может быть сжат, она просто сохраняет файл в архиве, не сжимая его, используя метод store. В большинстве дистрибутивов Linux утилита zip также поддерживает метод сжатия bzip2.

Чтобы указать метод сжатия, используйте опцию -Z.

zip -r -Z bzip2 directory_name…adding: sub_dir/ (stored 0%)adding: sub_dir/file1 (bzipped 52%)adding: sub_dir/file2 (bzipped 79%)

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

Создание защищенного паролем ZIP-файла

Если у вас есть конфиденциальная информация, которую необходимо сохранить в архиве, вы можете зашифровать ее, используя параметр -e:

zip -e directory_name

Вам будет предложено ввести и подтвердить пароль архива:

Enter password:Verify password:

Создание сплит Zip файла

Представьте, что вы хотите хранить zip-архив на файловом хостинге, который имеет ограничение на размер файла 1 ГБ, а ваш ZIP-архив 5 ГБ.

Вы можете создать новый разделенный Zip-файл, используя -sопцию с указанным размером. Множитель может быть k (килобайт), m (мегабайт), g (гигабайт) или t (терабайт).

zip -s 1g -r directory_name

Приведенная выше команда будет продолжать создавать новые архивы в наборе после достижения указанного предела размера.

Примеры ZIP

Создайте ZIP-архив с именем , содержащий все файлы в текущем каталоге.

То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):

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

Заключение

Из этой статьи вы узнали, как создавать ZIP-архивы с помощью команды zip. Мы также показали вам наиболее распространенные опции команды zip. Чтобы извлечь ZIP-архив в системе Linux, вы можете использовать команду unzip.

Если вы хотите узнать больше о Zip, посетите страницу Zip Man.

, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Работа с архивами в Linux

Архивирование и сжатие файлов позволят хранить те же самые данные при меньших затратах такого ресурса как постоянное хранилище (жёсткий диск, сменный накопитель, оптический диск и т. д.). Благодаря уменьшению размера, достигается не только экономия места на диске, но и ускорение передачи файлов по сети. В настоящее время, когда Интернет стал очень быстрым, а постоянные хранилища весьма объёмными и намного более дешёвыми чем в прошлом, важность сжатия файлов утратила свою прежнюю актуальность. Тем не менее, экономию места никто не отменял, да и зачастую нам приходится работать с уже сжатыми файлами, полученными из разных источников. Уже хотя бы поэтому необходимо иметь общее представления о работе с архивами в Linux: знать как их создавать, как их распаковывать, понимать разницу между архивированием и сжатием.